使用python和selenium从网页获取产品详细信息
我需要从网页中刮取一些数据。我正在使用selenium和Python来实现这一点,但无法获得所需的结果。如果有人能建议我怎么做,或者如何更改代码以获得所需的结果,这将非常有帮助 我需要得到以下订单位置,产品名称,网址和公司名称的结果 下面的脚本可以获取所有标题名称,但有额外的“\n”字符,无法获取其他详细信息。请任何人帮助我或提供建议使用python和selenium从网页获取产品详细信息,python,python-3.x,beautifulsoup,selenium-chromedriver,Python,Python 3.x,Beautifulsoup,Selenium Chromedriver,我需要从网页中刮取一些数据。我正在使用selenium和Python来实现这一点,但无法获得所需的结果。如果有人能建议我怎么做,或者如何更改代码以获得所需的结果,这将非常有帮助 我需要得到以下订单位置,产品名称,网址和公司名称的结果 下面的脚本可以获取所有标题名称,但有额外的“\n”字符,无法获取其他详细信息。请任何人帮助我或提供建议 from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdr
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
option = webdriver.ChromeOptions()
option.add_argument(" — incognito")
#browser = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver/', chrome_options=option)
browser = webdriver.Chrome(executable_path='/users/user_1566/downloads/chrome_driver/chromedriver', chrome_options=option)
browser.get('https://www.google.com/search?q=samsung+note10')
#items = len(browser.find_elements_by_class_name("cu-container"))
#items = len(browser.find_elements_by_class_name("mnr-c pla-unit"))
#print(items)
timeout = 20
try:
WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='top-pla-group-inner']")))
except TimeoutException:
print('Timed out waiting for page to load')
#browser.quit()
titles_element = browser.find_elements_by_xpath("//div[@class='mnr-c pla-unit']")
# use list comprehension to get the actual repo titles and not the selenium objects.
titles = [x.text for x in titles_element]
# print out all the titles.
print('titles:')
print(titles, '\n')
language_element = browser.find_elements_by_xpath("//a[@class=''plantl pla-unit-single-clickable-target clickable-card']")
print(language_element)
# same concept as for list-comprehension above.
languages = [x.text for x in language_element]
print("languages:")
print(languages, "\n")
for title, language in zip(titles, languages):
print("RepoName : Language")
print(title + ": " + language, "\n")
URL的预期输出
试一试
在这之后,您可以根据需要显示我们可以在这里添加输出吗?@SHASHIKUMARKL是的,当然可以。我将在这里添加输出,如果您能提供指导,这将非常有用。这是URL,示例输出将添加到上面。@SHASHIKUMARKL有什么建议或修改吗?我得到的输出如下任何其他解决方案或事情要做吗?或者你知道如何创建一个包含DIV类所有内容的文本文件吗?.getText()方法我想获得divclass“top pla group inner”的全部内容并将其另存为文本文件,尝试过使用它,但不限制DIV clas items=browser的内容。按类名称(“顶级pla组内部”)查找元素。getText()打印(项目)
Position Company_Name Product_Name URL
1 CHECK24 Samsung Galaxy Note10 256 GB
glow mit Vertrag + Allnet Flat bei
details=browser.find_elements_by_class_name("pymv4e")
for i in details:
print(str(i))