首页 > 解决方案 > 我的代码在从网站中提取数据时随机刹车(python)

问题描述

抓取网址时,我的代码导致错误。我只发布有问题的片段。如果此代码运行几次,它将产生此错误。我有大约 20 个带有像这样的产品页面的 url,它总是在随机点失败。有时它可以很好地读取 url,有时它会搞砸。我觉得很奇怪,它只发生在“preis”变量上。我试图在几个阶段添加延迟。最多 5 秒,但这似乎并不能解决我的问题。

File "C:\Users\kibit\PycharmProjects\scrapingRequest-html\Test.py", line 23, in <module>
    preis = article.find('div.drzWO', first=True).text
AttributeError: 'NoneType' object has no attribute 'text'

代码:

from requests_html import HTMLSession
import csv
import time

#csv_file = open('beoscrape.csv', 'w')
#csv_writer = csv.writer(csv_file)
#csv_writer.writerow(['Produkt', 'Retailer', 'Preis'])

session = HTMLSession()
url='https://www.google.com/shopping/product/16302210309954970571/offers?q=OLED+65+G19+LA&newwindow=1&prds=cid:16302210309954970571,eto:856723695612861771_0,scoring:tp'

r = session.get(url)
r.html.render()

produktscan = r.html.find('title')
produkt = produktscan[0].text
produkt = produkt.replace(' | Google Shopping', '')

for article in r.html.find('tr.sh-osd__offer-row'):

    retailer = article.find('div.kPMwsc', first=True).full_text
    retailer = retailer.replace('Wird in einem neuen Fenster geöffnet', '')
    preis = article.find('div.drzWO', first=True).text

    print(produkt)
    print(retailer)
    print(preis)

#    csv_writer.writerow([produkt, retailer, preis])

#csv_file.close()

标签: pythonweb-scraping

解决方案


推荐阅读