scrapy框架爬取网站
比如https://www.dushu.com/news/99.html 爬取这个分类下每篇文章的标题 作者 内容等
首先 创建工程
终端输入
scrapy startproject News
进入工程目录
cd News
创建 spider 文件 主要获取网页 及 处理在逻辑写在其中
scrapy genspider history www.dushu.com
这个读书网站是比较规则的 有 信息页 及详情页 可使用 CrawlSpider 爬取
先使用常规方法爬取
在history.py 中实现 页面获取解析逻辑
页面中自带一个类 继承 scrapy.Spider
类中有三个属性
name spider名。在执行爬虫文件时会用到
allowed_domains 允许的域名 www.dushu.com 可以删除
start_urls 默认识别解析的网页 换为https://www.dushu.com/news/99.html
scapy执行时 会调用 start_request()方法。。。默认是没有的。。。不是一定要重写该方法该方法会将根据网址生成 request请求。scrapy.Request(url)默认callback回调方法是parse 如果我们重写该方法要和默认执行一样 则为
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url)
根据start_url中内容生成迭代器
pars