gpt4 book ai didi

python - 回到基础 : Scrapy

转载 作者:行者123 更新时间:2023-11-28 17:31:51 25 4
gpt4 key购买 nike

scrapy 的新手,我绝对需要指点。我已经完成了一些示例,但没有掌握一些基础知识。我正在运行 scrapy 1.0.3

蜘蛛:

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from matrix_scrape.items import MatrixScrapeItem


class MySpider(BaseSpider):
name = "matrix"
allowed_domains = ["https://www.kickstarter.com/projects/2061039712/matrix-the-internet-of-things-for-everyonetm"]
start_urls = ["https://www.kickstarter.com/projects/2061039712/matrix-the-internet-of-things-for-everyonetm"]

def parse(self, response):
hxs = HtmlXPathSelector(response)

item = MatrixScrapeItem()
item['backers'] = hxs.select("//*[@id="backers_count"]/data").extract()
item['totalPledged'] = hxs.select("//*[@id="pledged"]/data").extract()
print backers, totalPledged

项目:

import scrapy


class MatrixScrapeItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()

backers = scrapy.Field()
totalPledged = scrapy.Field()

pass

我收到错误:

File "/home/will/Desktop/repos/scrapy/matrix_scrape/matrix_scrape/spiders/test.py", line 15
item['backers'] = hxs.select("//*[@id="backers_count"]/data").extract()

我的问题是:为什么选择和提取不能正常工作?我确实看到人们经常使用 Selector 而不是 HtmlXPathSelector。

我还尝试将其保存到 csv 文件并根据时间自动执行(每 30 分钟提取一次这些数据点)。如果有人对这方面的例子有任何指示,他们会得到 super 加分:)

最佳答案

语法错误是由您使用双引号的方式引起的。混合单引号和双引号:

item['backers'] = hxs.select('//*[@id="backers_count"]/data').extract()
item['totalPledged'] = hxs.select('//*[@id="pledged"]/data').extract()

作为旁注,您可以使用 response.xpath()快捷方式而不是实例化 HtmlXPathSelector:

def parse(self, response):
item = MatrixScrapeItem()
item['backers'] = response.xpath('//*[@id="backers_count"]/data').extract()
item['totalPledged'] = response.xpath('//*[@id="pledged"]/data').extract()
print backers, totalPledged

您可能打算获取 data 元素的 text():

//*[@id="backers_count"]/data/text()
//*[@id="pledged"]/data/text()

关于python - 回到基础 : Scrapy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33699620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com