Scrapy爬虫框架快速入门

scrapy,爬虫,框架,快速,入门 · 浏览次数 : 124

小编点评

**安装 Scrapypip** ```bash pip install scrapy -i https://pypi.douban.com/simple/安装过程可能遇到的问题版本问题导致一些辅助库没有安装好,需要手动下载并安装一个辅助库Twisted运行时候:ModuleNotFoundError: No module named 'attrs'pip install attrs --upgrade运行时候:Loading \"scrapy.core.downloader.handlers.http.HTTPDownload Handler\" for scheme \"https\" ``` **设置实体文件** 创建一个名为 `field_list.txt` 的文件,并写入以下内容: ``` name age occupation ``` **创建项目** 在项目目录下创建文件 `settings.py` 并写入以下内容: ```python # settings.py USE_ETAGS = True ITEM_CLASS = "your_item_class_name" FIELD_LIST_FILE = "field_list.txt" ``` **开始爬取** 在项目的根目录中运行以下命令: ```bash scrapy startproject your_project_name ``` **设置 Robots 和 User-Agent** 在 `settings.py` 中设置以下参数: ```python # settings.py ROBOT_TXT = "your_robots_file.txt" USER_AGENT = "your_user_agent" ``` **运行爬取文件** 运行以下命令执行爬取: ```bash scrapy crawl your_project_name ``` **注意** * `your_project_name` 是你项目的名称。 * `your_item_class_name` 是你要爬取的类的名称。 * `your_robots_file.txt` 是你的 Robots 协议文件路径。 * `your_user_agent` 是你的 User-Agent。

正文

安装scrapy

pip install scrapy -i https://pypi.douban.com/simple/

安装过程可能遇到的问题
  1. 版本问题导致一些辅助库没有安装好,需要手动下载并安装一个辅助库Twisted
  2. 运行时候:ModuleNotFoundError: No module named 'attrs'
    pip install attrs --upgrade
  3. 运行时候:Loading "scrapy.core.downloader.handlers.http.HTTPDownload Handler" for scheme "https"
    pip install pywin32

创建项目

CMD进入需要创建项目的目录下,输入命令

scrapy startproject ×××

 命令基本不需要死记硬背,正如下图所示,会告诉你接下来需要输入的命令

 

 设置实体文件(建立要获取的字段)

这个文件内会写入后续需要爬取的字段,scrapy.Field()就是变量存储区域,通过“spiders”里的爬虫文件获取的内容都会存储在此处设置的区域里。

然后以实体文件作为中转站,将这些变量传输到其他文件中,例如,传输到管道文件中进行数据存储等处理。设置完实体文件,就可以在实战中应用刚才创建的变量了。

修改设置文件(设置Robots协议和User-Agent,激活管道文件)

运行爬取文件可能会遇到DEBUG:Forbidden by robots txt 说明百度的Robots协议禁止Scrapy框架直接爬取。

解决这个问题可以通过设置文件20行左右的位置把OBEY置为False

 设置User-Agent同样在设置文件40行左右位置,添加一行User-Agent

 要进行数据的爬后处理,即将数据写入数据库或文件等后续操作。所以先要激活管道

后面的数字只是排序的顺序,越小越靠前

如果管道文件有新增类名,就需要在这里添加

在文件夹“spiders”中编写爬虫逻辑(核心爬虫代码)

第10 行start_urls是一个列表存放需要爬取的url,如果需要爬取多个地址(例如存在ajex动态页面爬取),可以往这个start_urls列表中append多个地址

爬虫代码基本都在parse中

第13行实例化items,就是实例化需要提取的字段

后面几行都是基本的爬虫代码这里就解释了,需要说一下的是response.text才是网页源代码

 注:除了常见的用正则表达式提取,还有一个库比较常见就是Beautifulsoup

设置管道文件(爬后处理)

爬取后需要存入文件或者下载文件

这里需要说一下,第15行和第24行去判断spider.name是为了在运行的时候进行区分。

当然写管道的时候,可以把所有处理方式写在一个类中,通过spider.name去进行区分,也可以像下图一样用不同的类去写。但如果是不同的类就需要到设置文件中把新增类添加到设置中去。

第26行urlretrieve()函数是用来下载图片

 最后运行

最后在命令行输入

scrapy crawl **** 

 

与Scrapy爬虫框架快速入门相似的内容: