当前位置: 首页 > 知识库问答 >
问题:

硒和靓汤一起使用

壤驷鸿
2023-03-14

我正在抓取一个谷歌学者个人资料页面,现在我有来自漂亮的汤库的python代码,它从页面上收集数据:

url = "https://scholar.google.com/citations?user=VjJm3zYAAAAJ&hl=en"
while True:

    response = requests.get(url)
    data = response.text
    soup = BeautifulSoup(data,'html.parser')
    research_article = soup.find_all('tr',{'class':'gsc_a_tr'})
    
    for research in research_article:
        
        title = research.find('a',{'class':'gsc_a_at'}).text 
        authors = research.find('div',{'class':'gs_gray'}).text
    
        print('Title:', title,'\n','\nAuthors:', authors)

我还拥有selenium库中的python代码,它可以自动打开配置文件页面,单击“显示更多”按钮:

driver = webdriver.Chrome(executable_path ="/Applications/chromedriver84")
driver.get(url)

try:
    #Wait up to 10s until the element is loaded on the page
    element = WebDriverWait(driver, 10).until(
        #Locate element by id
        EC.presence_of_element_located((By.ID, 'gsc_bpf_more'))
    )
finally:
    element.click()

如何将这两个代码块组合起来,以便单击显示更多按钮,并刮掉整个页面?提前感谢!

共有1个答案

越勇锐
2023-03-14

此脚本将打印页面中的所有标题和作者:

import re
import requests
from bs4 import BeautifulSoup


url = 'https://scholar.google.com/citations?user=VjJm3zYAAAAJ&hl=en'
api_url = 'https://scholar.google.com/citations?user={user}&hl=en&cstart={start}&pagesize={pagesize}'
user_id = re.search(r'user=(.*?)&', url).group(1)

start = 0
while True:
    soup = BeautifulSoup( requests.post(api_url.format(user=user_id, start=start, pagesize=100)).content, 'html.parser' )

    research_article = soup.find_all('tr',{'class':'gsc_a_tr'})

    for i, research in enumerate(research_article, 1):
        title = research.find('a',{'class':'gsc_a_at'})
        authors = research.find('div',{'class':'gs_gray'})

        print('{:04d} {:<80} {}'.format(start+i, title.text, authors.text))

    if len(research_article) != 100:
        break

    start += 100

印刷品:

0001 Hyper-heuristics: A Survey of the State of the Art                               EK Burke, M Hyde, G Kendall, G Ochoa, E Ozcan, R Qu
0002 Hyper-heuristics: An emerging direction in modern search technology              E Burke, G Kendall, J Newall, E Hart, P Ross, S Schulenburg
0003 Search methodologies: introductory tutorials in optimization and decision support techniques E Burke, EK Burke, G Kendall
0004 A tabu-search hyperheuristic for timetabling and rostering                       EK Burke, G Kendall, E Soubeiga
0005 A hyperheuristic approach to scheduling a sales summit                           P Cowling, G Kendall, E Soubeiga
0006 A classification of hyper-heuristic approaches                                   EK Burker, M Hyde, G Kendall, G Ochoa, E Özcan, JR Woodward
0007 Genetic algorithms                                                               K Sastry, D Goldberg, G Kendall

...

0431 Solution Methodologies for generating robust Airline Schedules                   F Bian, E Burke, S Jain, G Kendall, GM Koole, J Mulder, MCE Paelinck, ...
0432 A Triple objective function with a chebychev dynamic point specification approach to optimise the surface mount placement machine M Ayob, G Kendall
0433 A Library of Vehicle Routing Problems                                            T Pigden, G Kendall, SD Ehsan, E Ozcan, R Eglese
0434 This symposium could not have taken place without the help of a great many people and organisations. We would like to thank the IEEE Computational Intelligence Society for … S Louis, G Kendall
 类似资料:
  • 我正在学习如何使用含硒的靓汤进行刮食,我发现了一个有多个表格的网站,并找到了表格标签(第一次处理它们)。我正在学习如何尝试从每个表中删除这些文本,并将每个元素附加到列表中。首先我试着刮第一张桌子,剩下的我想自己做。但由于某些原因,我无法访问标签。 我还合并了selenium来访问这些站点,因为当我将指向站点的链接复制到另一个选项卡上时,出于某种原因,表列表会消失。 到目前为止,我的代码是: 有人能

  • 我想用python解析HTML文件,但BeautifulSoup遗漏了一些关键标记。 网站上HTML文件的部分看起来像这样,包含所有子div。HTML代码段 但是当使用美汤美化功能时,它看起来是这样的,没有任何子div。来自python的超文本标记语言片段 我使用的代码如下: 最终的结果是,我无法联系到children div并提取我需要的文本。

  • 我正在尝试将表从网站解析到本地数据帧。 以下是html: 这是我的密码: 但是我遇到了这个错误,无法继续:AttributeError:ResultSet对象没有“find_all”属性。您可能将元素列表视为单个元素。当您打算调用find()时,是否调用了find_all()? 有人能帮帮我吗? 我会非常感激的。 提前感谢。

  • 我正在尝试使用Selenium在网站上自动加载“Show More”,然后想使用Beautifulsoup刮取内容。 我的代码正在运行,但没有给出期望的结果。我知道我做错了什么,但找不到它。对于Selenium:我的代码是单击“显示更多”按钮,但它不一致。有时它会点击5次,有时会点击10次。我希望它一直运行到最后一个“显示更多”。我不明白我做错了什么。对于Beautifulsoup:除了加载更多内

  • 我的一个文件被“标记为文本”,图标在变。实际上,这是一个PHP文件。我试过去< code >求助- 我错过了什么?我如何才能恢复PHP突出显示?

  • 我编写了一个脚本,使用美丽的汤和硒库来浏览Vivino网站。 在这个网站上,我想存储某款葡萄酒的评论信息。 我必须使用Selenium进行动态抓取,因为评论只能按网页中的“显示更多评论”按钮访问,该按钮在向下滚动到页面顶部后出现。 我仅为一种葡萄酒修改了代码,以便您可以看到,如果需要,需要多长时间: 我写的脚本执行以下步骤: > 使用特定的葡萄酒链接(即:https://www.vivino.co