scrapy - 有没有办法获取从其中抓取链接的 URL?
问题描述
我写了一个蜘蛛,它会爬我的网站并刮掉一堆标签。我现在正试图让它返回发现链接的 URL。
例如:
www.example.com/product/123
被发现于www.example.com/page/2
。
当scrapy从我那里抓取信息时,/product/123
我想要一个“Scraped From”并返回的字段/page/2
。对于每个被抓取的 URL,我想找到找到该 URL 的原始页面。我一直在翻阅文档,似乎无法弄清楚这一点。任何帮助,将不胜感激!
解决方案
最简单的方法是使用 response.headers。应该有一个引用标题。
referer = response.headers['Referer']
您还可以使用 meta 将信息传递到下一个 URL。
def parse(self, response):
product_url = response.css('#url').get()
yield scrapy.Request(product_url, callback=self.parse_product, meta={'referer': response.url})
def parse_product(self, response):
referer = response.meta['referer']
item = ItemName()
item['referer'] = referer
yield item
推荐阅读
- pandas - Pandas .any() 每列返回一个布尔值
- websocket - How to wait for variables to change before sending the next content , websocket by reactor-netty
- c# - 如何在 WEB API 的 ASP.NET MVC 控制器级别中启用 CORS?
- ios - How do I access the camera in Swift 4?
- c# - 无法获取未共享记录
- spring - Spring Boot Mongodb 在应用程序关闭时全部删除
- mysql - 从node.js获取mysql模块的“服务器关闭连接”错误
- android - Android Crashlytics 停止发送崩溃报告
- python-3.x - Elapsed time in pandas time series
- batch-file - 使用 BATCH 定义路径中的文件的哈希文件