【发布时间】:2022-01-08 14:19:38
【问题描述】:
我在编码方面完全是个菜鸟,但目前正在研究一些东西,只是为了在 python 中玩耍 - 这真的很酷!
如果我想抓取的网站上没有某些部分数据(例如价格),您能帮我找出如何避免“ValueError:所有数组必须具有相同长度”的方法吗?我可以看到数据无法通过 print(len) 获得 - 例如,数据帧的 len 为 10、11、11,这会导致错误,因为第一个缺少行值。其他一切都很好。对我来说,如果缺少的行可以简单地用“-”或“不可用”之类的东西来填充,那就太酷了。
我尝试了很多阅读,并且经历了很多尝试和错误,因此,如果有人可以帮助我,我会非常高兴。这是我的代码:
#add parser
page_source = driver.page_source
soup = BeautifulSoup(driver.page_source, 'html.parser')
#add scrape info
images = []
for img in soup.findAll('div', {'class': 'gridContent'}):
images.append(img.get('src'))
marke = [marke.text for marke in soup.findAll('span', {'class': 'ZZZ'})]
titel = [titel.text for titel in soup.findAll('h3', {'class': 'YYY'})]
preis = [preis.text for preis in soup.findAll('div', {'class': 'XXX'})]
#assign DF's
alle_daten = {'Zeitstempel:': timestamp_human, 'URL:': url, 'Marke:': marke, 'Titel:': titel, 'Preis:': preis}
df_all = pd.DataFrame(data=alle_daten)
df_scrape_all_clean = df_all.replace('\n', ' ',)
clean_stack = pd.concat([df_scrape_all_clean], axis=1)
df_all_urls = df_all_urls.append(df_all)
df_all_urls.to_excel("AAA.xlsx")
print(url)
【问题讨论】:
-
这是代码不断崩溃的部分:#assign DF's alle_daten = {'Zeitstempel:': timestamp_human, 'URL:': url, 'Marke:': marke, 'Titel:':标题,'Preis:':preis}
-
您可以检查价格是否为无,并在价格不可用时附加N/A。
-
@KamaleshS:你能向我解释一下这是怎么可能的吗?这将 - 至少我猜是这样 - 解决了我的问题。谢谢!
-
如果您可以分享网址,我可以更好地帮助您。
标签: python pandas selenium beautifulsoup web-crawler