【发布时间】:2016-06-22 11:36:36
【问题描述】:
我正在使用 scrapy 抓取一些页面。我正在使用python 2.7。 蜘蛛返回响应对象,我正在检查页面上找到的 URL。我想限制蜘蛛只跟随我指定位置的子路径的 URL。
例如,我想指定蜘蛛只应遵循 www.google.com/policies/privacy/ 下方的链接
从响应对象中提取的链接遵循许多不同的约定。
例如
- ../../policies/privacy/
- ../../policies/privacy/example/collect-information.html
- #infocollect
- /intl/en_uk/policies/privacy/google_privacy_policy_en_uk.pdf
- //myaccount.google.com/
- https://support.google.com/policies/troubleshooter/2990837?hl=en-GB
我不知道该怎么做。我刚刚在字符串上使用了一个简单的查找方法。在我看来,它并不强大或那么聪明。
import scrapy
class googleSpider(scrapy.Spider):
name = "google"
allowed_domains = ["google.co.uk"]
start_urls = [
"http://www.google.co.uk/intl/en/policies/privacy/"
]
def parse(self, response):
for href in response.xpath('//a/@href').extract():
if href.find('/policies/privacy/') != -1:
yield scrapy.Request(response.urljoin(href), callback=self.parse_dir_contents)
def parse_dir_contents(self, response):
pass
【问题讨论】:
-
你能分享一下你目前尝试过的 Scrapy 代码吗?
-
当然。你可以看到我没有正确解决这个问题。
标签: python path scrapy web-crawler scrapy-spider