【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'}
# 初始化一个空列表,用于存储文章标题和链接
articles = []
# 设置起始页和结束页
start_page = 1
end_page = 10
# 循环遍历页面
for page in range(start_page, end_page + 1):
print(f"正在抓取第{page}页的数据...")
# 构造URL
url = f"http://www.gov.cn/zhengce/content/{page}"
# 发送GET请求
response = requests.get(url, headers=headers)
# 确保请求成功
if response.status_code == 200:
# 解析网页
soup = BeautifulSoup(response.text, 'lxml')
# 找到所有的文章列表项
list_items = soup.find('div', class_='list_txt').find_all('li')
for li in list_items:
# 提取文章标题和链接
title = li.find('a').text
link = li.find('a')['href']
full_link = f"http://www.gov.cn{link}"
# 将信息添加到列表中
articles.append({'标题': title, '链接': full_link})
else:
print(f"请求第{page}页失败,状态码:{response.status_code}")
# 将列表转换为DataFrame
df = pd.DataFrame(articles)
# 保存为CSV文件
df.to_csv('国脉文章.csv', index=False, encoding='utf-8-sig')
print("所有页面抓取完成,数据已保存到CSV文件。")
这段代码使用了requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML,使用pandas库来处理数据并保存为CSV文件。代码简洁明了,注重实现功能而不包含复杂的逻辑,适合作为爬虫入门学习的例子。
评论已关闭