我最近开始在python中使用Scrapy学习Web抓取,并面临着从AccuWeather.org网站(https://www.accuweather.com/en/gb/london/ec4a-2/may-weather/328328?year=2020)抓取数据的问题。基本上,我捕捉日期和它的天气温度为我的报告目的。当检查网站时,我发现太多的div标签,所以写代码时感到困惑。所以我想我会寻求Maven的帮助。
下面是我的代码供您参考。
import scrapy
class QuoteSpider(scrapy.Spider):
name = 'quotes'
start_urls = ['https://www.accuweather.com/en/gb/london/ec4a-2/may-weather/328328?year=2020']
def parse(self, response):
All_div_tags = response.css('div.content-module')[0]
#Grid_tag = All_div_tags.css('div.monthly-grid')
Date_tag = All_div_tags.css('div.date::text').extract()
yield {
'Date' : Date_tag}
我在PyCharm中写了这个,并得到错误“代码未处理或不允许”。请帮我拿一下这个。
1条答案
按热度按时间tkclm6bt1#
我试着读了一些网站,给了我同样的错误。这是因为有些网站不允许在上面进行网页抓取。要从这些网站获取数据,您可能需要使用它们的API(如果它们有)。幸运的是,AccuWeather使其API的使用变得很容易(与其他API不同):
1.首先,您需要在其开发人员的网站上创建一个帐户:https://developer.accuweather.com/
1.现在,通过转到我的应用>添加新应用创建新应用。
1.您可能会看到有关您的应用程序的一些信息(如果没有,请按其名称,它可能会显示)。您需要的唯一信息是您的API Key,这对于API来说是必不可少的。
1.当你有了你想要获取天气的城市的位置键时,打开一个文件,然后键入:
如果您需要每日天气(如here所示),请键入:
将APIKEY替换为您的API密钥,将LOCATIONKEY替换为城市的位置密钥。现在,当你运行它时,它应该显示200(意味着请求成功)现在,将它作为JSON文件加载:
而你现在可以从中得到一些信息,比如当天的“定义”:
最低温度:
最高气温
机组最低温度和最高温度:
和更多.
如果你有任何问题,让我知道。希望我能帮到你!