2.爬虫框架scrapy全部笔记

1、cmd创建项目
scrapy startproject 项目名

2、创建爬虫
进入到刚刚创建的项目下的spiders目录中,scrapy genspider 爬虫名 域名
如: scrapy genspider douban douban.com

3、
用pycharm打开项目,在爬虫文件中开始编写爬虫代码。
改start_urls中的起始页
在默认的parse方法中去写处理该页面的提取内容代码

4、在items中完成爬取数据字段的实体,如:
name = scrapy.Fileds()
price =scrapy.Fileds()

5、在parse方法中,通过response.path完成页面的解析。如:
li_list = response.xpath(‘//div[@id=”xxx”]/ul/li’) #获取某个div下所有的li
for li in li_list:

通过li继续获取每个li下面需要的数据,如下:

xxx = li.xpath(‘.//xxx[@xxx=”xxx”]/xxx/text()’).extract_first() #如果一个内容则直

接提取

多个内容需要通过extract()获取后得到的是数组

如果有内页:
ny_url = li.xpath(‘../…/a/@href’).extract_first()

继续发送内页请求

yield scrapy.Request(url=ny_url,callback=self.解析内页的方法名)

6、定义解析内页或者其他页面的方法:
def parse_ny(self,response):
…..解析内页

7、数据封装
from 项目名.items import items.py文件中的实体类的名称

def parse(self,response):
需要使用的时候先创建实体对象,或者在循环中创建实体对象
item = 实体类名称()
item[‘实体类字段’] = 数据
item[‘实体类字段’] = 数据

如果需要将实体对象传入下一个解析方法继续处理的。
yield scrapy.Request(url=下一个url,meta={‘自己起名称’:item},callback=self.parse方法)

def parse方法(self,response):
item = response.meta[‘自己起的名称’]

继续向item中添加其他爬取的数据字段

item[‘xxx’] =xxx

数据装完,返回给实体管道

yield item

Original: https://blog.csdn.net/Yang_Ke_Di/article/details/122542376
Author: 夙惜言
Title: 2.爬虫框架scrapy全部笔记

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/790441/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球