如何解决Python selenium webdriver返回空白文件
Posted
技术标签:
【中文标题】如何解决Python selenium webdriver返回空白文件【英文标题】:How to solve Python selenium webdriver returning blank files 【发布时间】:2022-01-19 00:28:52 【问题描述】:我目前正在系统地抓取一家在线零售商网站的数据。我每周都这样做一次,已经 2 个月了,我的 Python 代码运行良好,但是当我今天尝试运行它时,它返回的是空白文件,而不是我通常的数据。我尝试了多种方法来解决这个问题,但没有设法解决它。我尝试切换到 geckodriver 但结果相同。我还更新了我的 selenium、chromedriver、chrome ......但没有运气。有人建议解决这个问题吗? (这是我的第一篇文章,所以希望我能清楚地显示代码)
from bs4 import BeautifulSoup
import re
import csv
from selenium import webdriver
import numpy
url = "https://www.zalando.be/sportsokken/_zwart/"
driver = webdriver.chrome(executable_path = "/Users/lisabyloos/Downloads/chromedriver")
pages = numpy.arange(1,3,1)
for page in pages:
driver.get(url + "?p=" + str(page))
html_content = driver.execute_script('return document.body.innerHTML')
soup = BeautifulSoup(html_content, "lxml")
product_divs = soup.find_all("div", attrs="class": "_4qWUe8 w8MdNG cYylcv QylWsg SQGpu8 iOzucJ JT3_zV DvypSJ")
results = []
for product in product_divs:
results.append(product.get_text(separator=";"))
import pandas as pd
df = pd.DataFrame([sub.split(";") for sub in results])
df.to_csv("myfile" + str(page) + ".csv" )
【问题讨论】:
你在这里也使用 bs4 的原因是什么? 【参考方案1】:会发生什么?
您尝试查找的元素类别是动态生成的并且已经更改。
注意 页面不时变化,但结构变化比样式变化少。因此,使用元素或 id 而不是类进行选择始终是一个好策略。
如何解决?
调整选择标准以获得结果:
product_divs = soup.find_all('article')
【讨论】:
以上是关于如何解决Python selenium webdriver返回空白文件的主要内容,如果未能解决你的问题,请参考以下文章
Python+Selenium练习篇之5-利用css定位元素