【Python Scrapy 爬虫框架】 6、继续爬虫、终止和重启任务


0x00 前言

有时候我们不想只爬一个页面的,比如之前我只爬了主页,但是现在想把其他页面的也爬下来,这就是本文的任务。

0x01 修改代码

在之前的基础上,修改 teamssix_blog_spider.py 文件,首先添加 start_urls

start_urls = [
   'https://www.teamssix.com',
   'https://www.teamssix.com/page/2/',
   'https://www.teamssix.com/page/3/',
   'https://www.teamssix.com/page/4/',
   'https://www.teamssix.com/page/5/'
]

接下来在 sub_article 函数尾部添加 parse 函数的全部代码

soup = BeautifulSoup(response.text, 'html.parser')
for i in soup.select('.post-title'):
   url = 'https://www.teamssix.com{}'.format(i['href'])
   yield scrapy.Request(url, callback=self.sub_article)

所以 sub_article 函数的完整代码就是这个样子:

def sub_article(self,response):
   soup = BeautifulSoup(response.text,'html.parser')
   title = self.article_title(soup)
   list = self.article_list(soup)
   print(title)
   item = TeamssixItem(_id = response.url,title = title,list = list)
   yield item

   soup = BeautifulSoup(response.text, 'html.parser')
   for i in soup.select('.post-title'):
      url = 'https://www.teamssix.com{}'.format(i['href'])
      yield scrapy.Request(url, callback=self.sub_article)

从最后一行 callback=self.sub_article 这里不难看出这里其实就是一个循环, sub_article 函数第一遍执行完,又会调用继续执行第二遍,直到 start_urls 被执行完。

0x02 运行

代码修改的就这些,接下来直接 scrapy crawl blogurl 运行代码,来到 robo 3T 看看爬取到的数据。

图片

最终在这些 start_urls 中爬取下来了 43 篇文章,Emm,还行。

这次的 Scrapy 学习笔记就更新到这里,这个项目的代码已经放在了我的 GitHub 里,项目链接已经放在了下面。

更多信息欢迎关注我的个人微信公众号:TeamsSix
项目地址:https://github.com/teamssix/scrapy_study_notes

参考链接:
https://youtu.be/aDwAmj3VWH4
http://doc.scrapy.org/en/latest/topics/architecture.html


文章作者: TeamsSix
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 TeamsSix !
评论
 上一篇
【经验总结】SQL注入Bypass安全狗360主机卫士 【经验总结】SQL注入Bypass安全狗360主机卫士
0x00 前言这类的文章已经是比较多了,本文也主要是作为学习笔记来记录,主要是记录一下我在学习 SQL 注入 Bypass 的过程,同时前人的不少绕过方法已经失效了,所以这里也是记录一下最新规则的一些绕过方法。 0x01 环境搭建测试环境:
2020-01-05
下一篇 
【Python Scrapy 爬虫框架】 5、利用 pipelines 和 settings 将爬取数据存储到 MongoDB 【Python Scrapy 爬虫框架】 5、利用 pipelines 和 settings 将爬取数据存储到 MongoDB
0x00 前言前文中讲到了将爬取的数据导出到文件中,接下来就在前文的代码基础之上,将数据导出到 MongoDB中。 0x01 配置 pipelines.py首先来到 pipelines.py 文件下,在这里写入连接操作数据库的一些功能。 将
  目录