用python抓取多个google scholar页面

2024-05-04 15:36:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想抓取多个GoogleScholar用户配置文件——出版物、期刊、引文等。我已经编写了python代码,用于抓取给定url的用户配置文件。现在,假设我在excel文件中有100个名称和相应的URL,如下所示

name       link

Autor      https://scholar.google.com/citations?user=cp-8uaAAAAAJ&hl=en
Dorn       https://scholar.google.com/citations?user=w3Dri00AAAAJ&hl=en
Hanson     https://scholar.google.com/citations?user=nMtHiQsAAAAJ&hl=en
Borjas     https://scholar.google.com/citations?user=Patm-BEAAAAJ&hl=en
....

我的问题是,我是否可以读取该文件的“link”列,并为URL编写for循环,这样我就可以刮取每个配置文件,并将结果附加到同一个文件中。我似乎有点牵强,但我希望有办法做到这一点。提前谢谢


Tags: 文件用户httpscomurl配置文件googlelink
2条回答

您可以使用pandas.read_csv()从csv读取特定文件。例如:

import pandas as pd

df = pd.read_csv('data.csv')
arr = []
link_col = df['link']
for i in link_col:
    arr.append(i);
   
print(arr)

这将允许您仅提取链接列并将每个值附加到数组中。如果您想了解更多信息,可以参考pandas

我希望它对你来说不太先进

1为您的页面创建一个类

class Pages:
    def __init__(self, name=None, link=None):
        self.name = name
        self.link = link

2创建pages列表

pages = []

3查找行定位器,如:

rows = driver.find_elements_by_css_selector("your_selector")

行数必须与表中的行数相同。例如,如果您必须在列表中添加项目,rows编号将为20

4获取每行的值:

for row in rows:
    name = row.find_element_by_css_selector("here is a unique selector for each data field for name").text
    link = row.find_element_by_css_selector("here is a unique selector for each data field for link").text

5创建页面对象:

page = Page(name=name,link=link)

6将所有行放入列表:

pages.append(page)

结果

页面列表(对象page),其中第一行可通过pages[0]访问,第二行可通过pages[1]访问,依此类推

p.S 如果选择器有问题,请将其视为不同的问题。 我想我已经向你解释了这个概念,这样你就可以开始了

相关问题 更多 >