Python 使用scrapy递归刮取面包屑链接
我是python和scrapy的新手。对于一个大学项目,我需要在autoscout24.de域(德语)上刮取汽车分类广告 以下是一个示例站点: 我希望爬行蜘蛛递归地抓取“下一个提议”('nächstes Angebot'),但似乎无法从面包屑中提取链接。网站有趣的部分应该是:Python 使用scrapy递归刮取面包屑链接,python,scrapy,breadcrumbs,Python,Scrapy,Breadcrumbs,我是python和scrapy的新手。对于一个大学项目,我需要在autoscout24.de域(德语)上刮取汽车分类广告 以下是一个示例站点: 我希望爬行蜘蛛递归地抓取“下一个提议”('nächstes Angebot'),但似乎无法从面包屑中提取链接。网站有趣的部分应该是: <div class="floatRight"> <span class="linkInvisible"> &
<div class="floatRight">
<span class="linkInvisible">
<span class="floatLeft">‹</span>
<span class="floatLeft marginLeftXS">
vorheriges Angebot
</span>
</span>
<p class="floatLeft marginLeftXS">|</p>
<a id="breadCrumbNextOffer" ng-click="breadCrumb.nextOffer('http://ww3.autoscout24.de/classified/266709231')">
<span class="floatLeft marginLeftXS">
nächstes Angebot
</span>
<p class="floatLeft marginLeftXS">›</p>
</a>
</div>
但这只会刮去起始url,似乎找不到下一个链接
我将非常感谢您的任何意见。:) 这里解决了一个类似的问题:基本上,您可以更新规则提取器以获取属性ng的值,然后单击并处理该值以在另一个函数中提取uerl。谢谢。这让我意识到问题在于scrapy不支持javascript生成的内容。
import scrapy
from scrapy.contrib.linkextractors import LinkExtractor
from scrapy.contrib.spiders import CrawlSpider, Rule
from autocrawler.items import AutocrawlerItem
class AutocrawlerRecursiveSpider(CrawlSpider):
name = 'autocrawler_recursive'
allowed_domains = ['autoscout24.de']
start_urls = ['http://ww3.autoscout24.de/classified/268348256asrc=pl|as&testvariant=articles_t20&tierlayer=pl']
rules = (
Rule(LinkExtractor(allow=(r'/^http:\/\/ww3.autoscout24.de\/classified\/\w+$/'), restrict_xpaths=('//*[@id="ng-app"]/div[2]/div/div[1]/div')), callback='parse_item', follow=True),
)
def parse_item(self, response):
item = AutocrawlerItem()
item['brand'] = response.xpath('//*[@id="detailsContent"]/div[1]/h1/text()').extract()
item['price'] = response.xpath('//*[@id="detailsContent"]/div[2]/div/div[2]/div/div[1]/text()').extract()
return item