1
遞歸爬我已經集成scrapy濺在我CrawlerSpider process_request的規則是這樣的:scrapy濺不CrawlerSpider
的問題是,抓取渲染只是網址在第一深度, 我也奇怪我怎麼能得到反應,即使有壞的http代碼或重定向響應;
由於提前,
遞歸爬我已經集成scrapy濺在我CrawlerSpider process_request的規則是這樣的:scrapy濺不CrawlerSpider
的問題是,抓取渲染只是網址在第一深度, 我也奇怪我怎麼能得到反應,即使有壞的http代碼或重定向響應;
由於提前,
您的問題可能與此有關:https://github.com/scrapy-plugins/scrapy-splash/issues/92
總之,儘量把它添加到您的解析回調函數:
def parse_item(self, response):
"""Parse response into item also create new requests."""
page = RescrapItem()
...
yield page
if isinstance(response, (HtmlResponse, SplashTextResponse)):
seen = set()
for n, rule in enumerate(self._rules):
links = [lnk for lnk in rule.link_extractor.extract_links(response)
if lnk not in seen]
if links and rule.process_links:
links = rule.process_links(links)
for link in links:
seen.add(link)
r = SplashRequest(url=link.url, callback=self._response_downloaded,
args=SPLASH_RENDER_ARGS)
r.meta.update(rule=rule, link_text=link.text)
yield rule.process_request(r)
在情況下,你不知道爲什麼這可能會返回這兩個項目和新的請求。下面是從文檔:https://doc.scrapy.org/en/latest/topics/spiders.html
在回調函數中,您解析響應(網頁),並用提取的數據,項目的對象返回 要麼類型的字典,的請求對象,或它們的 迭代對象。這些請求還將包含回調 (可能相同),然後將由Scrapy下載,然後通過指定的回調處理它們的 響應。