过去一周我一直在使用以下教程使用 python 和 scrapy:https ://realpython.com/web-scraping-with-scrapy-and-mongodb/
本教程的作用是通过使用 scrapy 网络爬虫抓取 stackoverflow 上的热门问题及其 url,然后将其存储到 mongoDB 数据库和集合中。
我正在尝试调整教程中所做的工作,将多个项目抓取并存储到同一个 mongoDB 数据库的多个集合中,然后以 CSV 格式导出,我已经想出了如何做大部分工作,但我使用scrapy在网页上搜索指定项目的“xpaths”有问题,更具体地说,我已经想出了如何将pipleline处理到mongodb和存储多个集合以及更改集合名称基于正在抓取的项目的名称,但我无法让“蜘蛛”专门针对 xpath 工作,或者据我所知,问题在于 xpath 错误。
我之前没有使用过scrapy,我已经做了几天的研究,试图弄清楚如何做xpath,但我似乎无法让它工作。
问题标题和网址的蜘蛛按预期工作:
from scrapy import Spider
from scrapy.selector import Selector
from stack.items import QuestionItem
class QuestionSpider(Spider):
name = "questions"
allowed_domains = ["stackoverflow.com"]
start_urls = [
"http://stackoverflow.com/questions?pagesize=50&sort=newest",
]
def parse(self, response):
questions = Selector(response).xpath('//div[@class="summary"]/h3')
for question in questions:
item = QuestionItem()
item['title'] = question.xpath(
'a[@class="question-hyperlink"]/text()').extract()[0]
item['url'] = question.xpath(
'a[@class="question-hyperlink"]/@href').extract()[0]
yield item
相关分类