【发布时间】:2017-07-17 18:44:16
【问题描述】:
目标
使用 Scrapy 和 Python 制作两级深度网络爬虫。
问题
该网站的结构是,对于 1 个页面,爬虫程序正在跟踪链接并提取正确数据的大约 10 个项目。问题是这个结构对于 10 页是递归的,但是最后几页的链接发生了变化,并且注释指向 home1,但是 home2。对于第 2 到 10 页,我们希望爬虫执行相同的例程,因为爬虫所遵循的模式会在这些页面中递归重复。
网站结构
->website.com
--> /home1
---> /page/2
--> /home2/doc/item
我可以使用下一个爬虫从第一级访问数据。
一级爬虫
from scrapy.contrib.spiders import CrawlSpider, Rule
from mySpider.items import Item
from scrapy.linkextractors import LinkExtractor
class MySpider(CrawlSpider):
name="spider"
allowed_domains = ["website.com"]
start_urls = ["https://website.com/home1/"]
rules = [Rule(LinkExtractor(allow=('(/home2/doc/item((?!:).)*$'),), callback="parse_item", follow=True)]
def parse_item(self, response):
item = Item()
name = response.xpath('//h3/text()')[0].extract()
item['name'] = name
return item
【问题讨论】:
-
欢迎访问该网站:您可能想阅读help center、How to Ask 和minimal reproducible example。
标签: python web-scraping scrapy web-crawler