我不熟悉Python和web抓取,这是我关于stackoverflow的第一个问题。我看了几个教程,然后试图从这个页面的表中提取数据:https://www.wunderground.com/hourly/ir/tehran/date/2021-04-14
表:TABLE
但问题是,我似乎无法在scrapy shell中访问正确的类。 这是我的蜘蛛:
import scrapy
class SpSpider(scrapy.Spider):
name = 'sp'
start_urls = ['http://https://www.wunderground.com/hourly/ir/tehran/date/2021-04-14/']
def parse(self, response):
time = response.css('span.ng-star-inserted').extract()
这就是我在终点站得到的:
In [4]: response.css('span.ng-star-inserted::text').extract()**
Out[4]:
['\xa0',
'F',
'Night',
'\xa0',
'in',
'\xa0',
'miles',
'\xa0',
'F',
'\xa0',
'%',
'\xa0',
'in',
'\xa0',
'in']
我写这篇文章的目的是只获取一个数据(这里12是表中的时间)。 但正如您所看到的,列表内容并不相关。我应该如何访问数据
附言:我正在研究Python3.8
对于初学者来说可能有点复杂,但没关系
您要查找的数据通过XHR请求发送。(F12->;网络XHR)。您发出的请求仅返回将包含数据的html标记
在下面的代码中,我使用的url取自XHR选项卡。 所以我对这个url进行了查询。它返回一个JSON响应。然后,我将这个JSON响应(很容易被Python中的字典类型包含)转换成一个数据框架
请注意,查询获得的响应包含可用天数的“所有”小时预测(相当于单击网页上的左箭头和右箭头时)
对粗体中的单词进行一些研究,以取得进展。还要看一下请求和bs4包
注意:该url包含特定于德黑兰研究的参数:地理编码等
要获得第一次,如果您只需要它,请使用
css
定位器:第二:
等等
相关问题 更多 >
编程相关推荐