【发布时间】:2016-06-18 08:59:08
【问题描述】:
我有兴趣只提取 XHR 的网址,而不是网页中的每个网址:
这就是我提取页面中每个 url 的代码:
import scrapy
import json
from scrapy.selector import HtmlXPathSelector
from scrapy.spiders import CrawlSpider, Rule, Spider
from scrapy.linkextractors import LinkExtractor
class test(CrawlSpider):
name = 'test'
start_urls = ['SomeURL']
filename = 'test.txt'
rules = (
Rule(LinkExtractor(allow=('', )) ,callback='parse_item'),
)
def parse_item(self, response):
# hxs = HtmlXPathSelector(response)
with open ('test.txt', 'a') as f:
f.write (response.url + '\n' )
谢谢,
编辑: 你好,感谢cmets。 经过更多研究,我发现了这个:Scraping ajax pages using python 我想要的是自动做这个答案。对于大量网页,我需要这样做,并且手动插入网址不是一种选择。 有没有办法做到这一点?监听站点的 XHR 请求并保存 url?
【问题讨论】:
-
请提及错误/疑问。您的问题不清楚。
-
我不熟悉 XHR(虽然我刚刚读过它们),你能分辨出 XHR 和“普通”URL 之间的区别吗?也许是“api”?
-
您考虑过使用crummy.com/software/BeautifulSoup/bs4/doc 吗?这是解析 html/xml 文档的好方法...
-
@GregSadetsky 我同意无头浏览器是前进的方向。我们将不得不强制所有请求通过代理,然后根据请求类型将它们过滤掉,对吗?
标签: xmlhttprequest scrapy web-crawler