【问题标题】:Not being able to fetch data from sites in selenium无法从 selenium 中的站点获取数据
【发布时间】:2021-02-02 04:59:50
【问题描述】:

我正在使用 python,selenium。我正在输入一个关键字,然后在谷歌上进行搜索。在结果部分,我正在尝试一一打开 URL 并存储 p 标签的数据。

但在我的脚本中,它只存储一个站点的数据。任何人都可以帮助存储所有打开的站点的 p 标签数据吗?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time


"""
Taking input from user
"""

search_input = input("Input the keyword you want to search for:")
search_input = search_input.replace(' ', '+')

driver = webdriver.Chrome(executable_path="E:\chromedriver\chromedriver.exe")

for i in range(1):
    matched_elements = driver.get("https://www.google.com/search?q=" +
                                     search_input + "&start=" + str(i))

print(driver.title)
driver.maximize_window()
time.sleep(5)

links_url = driver.find_elements_by_xpath("//div[@class='yuRUbf']/a[@href]")
links = []


for x in links_url:
    links.append(x.get_attribute('href'))
link_data = []
for new_url in links:
    print('new url : ', new_url)
    driver.get(new_url)
    link_data.append(driver.page_source)

"""
Getting the data from the site
"""

content = driver.find_elements(By.TAG_NAME, "p")
for data in content:
    print(data.text)

driver.back()
driver.close()

【问题讨论】:

  • 只需缩进内容以匹配 for 循环。

标签: python python-3.x selenium selenium-chromedriver


【解决方案1】:

这是编辑后的答案,首先我误解了你的问题:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time


"""
Taking input from user
"""

search_input = input("Input the keyword you want to search for:")
search_input = search_input.replace(' ', '+')

driver = webdriver.Chrome(executable_path="E:\chromedriver\chromedriver.exe")

for i in range(1):
    matched_elements = driver.get("https://www.google.com/search?q=" +
                                     search_input + "&start=" + str(i))

print(driver.title)
driver.maximize_window()
time.sleep(5)

links_url = driver.find_elements_by_xpath("//div[@class='yuRUbf']/a[@href]")
links = []


for x in links_url:
    links.append(x.get_attribute('href'))

link_data = []

for new_url in links:
    print('\nnew url : ', new_url)

    driver.get(new_url)

    #Getting the data from the site

    try:
        link = driver.find_elements(By.TAG_NAME, "p")

        for p in link:
            print(p.get_attribute("innerText"))
    except:
        continue

driver.quit()

【讨论】:

  • 但它仍然从一个站点获取数据。我想要打开每个站点的 p 标签数据。
  • @SahilSuri 你也犯了其他错误,我已经编辑了我的答案并修改了你的代码。请检查。希望对您有所帮助。
  • 嘿@MuhammadYousufNoor,我添加了一个关于同一个问题的新问题,你能调查一下吗?我是新手,所以在编码时犯了一些错误!!!将不胜感激!!!这是链接 - stackoverflow.com/q/66021250/13845032
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 2019-09-17
  • 2021-12-13
  • 2012-11-13
  • 2016-01-02
  • 1970-01-01
相关资源
最近更新 更多