python - Python Scrapy 蜘蛛正在抓取 url,但没有返回任何内容
问题描述
我正在尝试解析网站。这是我的第一个scrapy项目,我是python的初学者。使用这篇文章,我爬取了一个 url 并没有从中获取任何数据。
我尝试了一些不同的 xpath 查询并更改了设置中的 USER_AGENT,但它仍然没有返回任何内容。
这是描述我要解析的代码的一部分:
def parse(self, response):
SET_SELECTOR = '.set'
for brickset in response.css(SET_SELECTOR):
TITLE_SELECTOR= '//head//title/text'
DATE_SELECTOR= '//table/tbody[2]//td[2]//text()'
TEMP_SELECTOR= '//table/tbody[2]/tr[1]/td[1]//text()'
yield {
'title': brickset.xpath(TITLE_SELECTOR).extract_first(),
'date': brickset.xpath(DATE_SELECTOR).extract_first(),
'temp1':brickset.xpath(TEMP_SELECTOR).extract_first(),
}
这是来自命令行的数据:
DEBUG: Crawled (200) <GET https://www.gismeteo.ru/diary/4368/2019/6/> (referer: None)
解决方案
您只是设置了错误的选择器。我已经为你测试过:
def parse(self, response):
TITLE_SELECTOR= '//div[@id="page_title"]//text()'
DATE_SELECTOR= '//table//tbody[1]//text()'
yield {
'title': response.xpath(TITLE_SELECTOR).extract_first(),
'date': response.xpath(DATE_SELECTOR).extract(),
}
推荐阅读
- domain-driven-design - 添加跨两个聚合的域服务的解决方案中的哪个项目?
- c++ - I/O 中打开(文件)的行为
- javascript - 如何将对象属性放入变量中?
- c# - 使用 ASP.Net Core 进行数据注释本地化
- html - 直接在视图中从 Laravel 的元属性中删除 HTML 标签
- javascript - 自定义 Babel 插件 - 将 stringLiteral 值更改为实际的 Javascript 代码
- javascript - scrollIntoView 没有滚动到请求带有提交按钮 onClick
- nginx - 在 Engintron 问题上反向代理到端口 8069,而它适用于标准 NGINX 设置
- node.js - 通过Nodejs中的查询字符串获取用户
- matlab - 如何在matlab向量上制作多个if?