【爬虫】使用Python爬取百度学术页面的标题、作者、摘要和关键词
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 设置请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
def get_papers(url):
# 发送GET请求
response = requests.get(url, headers=headers)
# 解析HTML内容
soup = BeautifulSoup(response.text, 'lxml')
# 初始化列表存储结果
titles, authors, summaries, keywords = [], [], [], []
# 查找所有的paper列表项
for paper in soup.select('.paper-list-item'):
# 提取标题
title = paper.select_one('.paper-title').text.strip()
titles.append(title)
# 提取作者
authors_text = paper.select_one('.paper-authors').text.strip()
authors.append(authors_text)
# 提取摘要
summary = paper.select_one('.paper-abstract').text.strip()
summaries.append(summary)
# 提取关键词
keyword_text = paper.select_one('.paper-keywords').text.strip()
keywords.append(keyword_text)
# 创建DataFrame存储结果
df = pd.DataFrame({
'标题': titles,
'作者': authors,
'摘要': summaries,
'关键词': keywords
})
return df
# 设置起始URL
start_url = 'https://xueshu.baidu.com/usercenter/paperlist?uid=1879782445&tab=all&start=0'
# 获取并打印结果
papers_df = get_papers(start_url)
print(papers_df)
这段代码使用了requests库来发送HTTP请求,BeautifulSoup库来解析HTML,以及pandas库来存储和打印结果。代码中的get_papers
函数接受一个URL作为参数,发送请求,解析页面,提取标题、作者、摘要和关键词,并将它们存储在一个DataFrame中返回。这个例子展示了如何使用Python爬取特定网页上的结构化数据,并且是学习网络爬虫技术的一个很好的起点。
评论已关闭