专栏名称: 数据派THU
本订阅号是“THU数据派”的姊妹账号,致力于传播大数据价值、培养数据思维。
目录
相关文章推荐
InfoTech  ·  2025年工信部职业技术/专项技术认证 ·  昨天  
大数据文摘  ·  大厂搞AI,谁赚到钱了? ·  4 天前  
InfoTech  ·  月薪40K的思维方式 ·  3 天前  
51好读  ›  专栏  ›  数据派THU

独家 | 手把手教你用scrapy制作一个小程序 !(附代码)

数据派THU  · 公众号  · 大数据  · 2017-11-07 19:00

正文

请到「今天看啥」查看全文



ImportError: dynamic module does not define init function (init_openssl)

解决方法:


出现这个问题最可能的原因是python是32bit,而电脑属于64bit。

如何检查python版本呢和电脑的操作系统位数呢?


uname -a


可以获取电脑操作系统的信息


import platform

platform.architecture()


可以知道当前python的版本情况,示例如下:


在这里推荐一篇博客《OSX 上安装 Scrapy 的那些坑》 ( http://www.cnblogs.com/Ray-liang/p/4962988.html )

4.2 建立项目和下载pycharm以及pycharm的配置


在这里选用经典的“爬取豆瓣9分书单”的例子,豆瓣书单链接: https://www.douban.com/doulist/1264675/


4.2.1 建立项目


首先在终端中输入命令 :


scrapy startproject book


成功建立的话会出现:


New Scrapy project 'book', using template directory '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scrapy/templates/project', created in:

/Users/wuxinyao/Desktop/book

You can start your first spider with:

cd book

scrapy genspider example example.com


此时你返回建立的目录下是可以看见生成了个叫book的目录,进入目录后用命令行建立最主要的爬虫python文件,例子中命名为douban。指令:


scrapy genspider douban https://www.douban.com/doulist/1264675/


上面的那个网址就是爬虫所针对的网址

成功后会显示如下代码:


Created spider 'douban' using template 'basic' in module:

book.spiders.douban

4.2.2  用pycharm进行下一步操作


pycharm的下载网址 : http://www.jetbrains.com/pycharm/download/#section=mac


  • 建立main文件


必须在book主目录下建立main.py,也就是说保证main.py和自动生成的scrapy.cfg在同一层。

在main.py中输入:

from scrapy import cmdline

cmdline.execute("scrapy crawl douban”.split())

  • 修改douban.py


在spiders目录下找到douban.py,注释掉#allowed_domains = [‘https://www.douban.com/doulist/1264675/'],并把函数改成如下:


def parse(self, response):

print response.body

  • 添加


在setting.py里添加:


USER_AGENT = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'

4.2.3 常见问题:下载的scrapy的包无法导入


unresolved reference ‘scrapy’


并且由于pycharm的权限问题,可能不能直接在IDE上下载scrapy。所以会反复报错。出现这个问题有以下几种解决办法:


  • 再次尝试在IDE上下载scrapy


file ——>default settings —-> Project Interpreter


选择一个解释器版本,点左下角的加号,在新弹出的界面中搜索scrapy,点击install,即可下载。


project interpreter的意思是解释器,mac电脑是自带python,但是可能种种原因很多人会选择下载新的python(例如操作系统的位数想从32位改成64位),并且储存在了不同的路径。而且mac自带的python在引入新的包的时候,很容易出现权限问题,所以mac用户常常有多个python解释器共存的情况。


在这个界面你就可以选择你想用的解释器:



这样做也不一定能解决问题,下载失败的原因有很多种,例如权限原因,或者是scrapy下载所需的某个包的版本不够新。它相当于在终端中运行:pip install scrapy的命令。


即使下载成功,也不一定能成功跑出来。不过这是相对来说最简单的解决方法,可以试试。


  • 重新编辑路径


run —>Edit Configuration



script里面写main.py的绝对路径,python interpreter里面选择你想用的解释器的版本。


如果你的scrapy可以在终端运行的话,你可以用 which scrapy查找一下scrapy的位置,然后选择路径相近的python版本。或者用which python找一下正在工作的python的绝对路径,选择该版本的解释器。


成功执行的输出结果:



最前面几行是这个样子,相当于扒下了网站的源码。其实用浏览器查一下网站的源码,显示的是相同的结果。


4.3 提取标题名和作者名


首先得观察网站的源代码:


发现在


参考原作者的写法,提取顺序如下:


  • 提取大框架 :

    提取题目:’div[@class="title"]/a/text()'
  • 提取作者:'

    (.*?)
  • 提取得分:’div[@class="rating"]/span[@class="rating_nums"]/text()'







请到「今天看啥」查看全文