翻页爬取考研信息并保存到csv中
时间: 2024-03-28 21:37:33 浏览: 142
好的,我可以帮你解决这个问题。首先,你需要确定要爬取的网站的URL格式和翻页规则。然后,你可以使用Python的requests库发送HTTP请求获取HTML页面,并使用BeautifulSoup库解析页面并提取所需的信息。最后,你可以使用Python的csv库将提取的信息保存到CSV文件中。
以下是示例代码:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 设置请求头,防止被网站屏蔽
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'}
# 设置要爬取的URL格式和翻页规则
url_format = 'http://www.xxx.com/page/{}'
page_num = 1
# 创建CSV文件并写入表头
with open('kyspider.csv', 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['title', 'link', 'date'])
# 循环爬取每一页的信息
while True:
url = url_format.format(page_num)
response = requests.get(url, headers=headers)
# 判断是否到达最后一页,如果是则退出循环
if response.status_code == 404:
break
# 解析HTML页面,并提取所需的信息
soup = BeautifulSoup(response.text, 'html.parser')
items = soup.find_all('div', {'class': 'item'})
for item in items:
title = item.find('h2').find('a').text
link = item.find('h2').find('a')['href']
date = item.find('span', {'class': 'date'}).text
# 将提取的信息写入CSV文件
writer.writerow([title, link, date])
# 翻页
page_num += 1
print('爬取完成!')
```
在上面的代码中,我们首先设置了请求头,防止被网站屏蔽。然后,我们设置了要爬取的URL格式和翻页规则,并创建了CSV文件并写入表头。接下来,我们循环爬取每一页的信息,直到到达最后一页为止。在每一页中,我们使用BeautifulSoup库解析HTML页面,并使用find()方法提取所需的信息。最后,我们将提取的信息使用csv库写入CSV文件中。
完成后,你可以运行程序并等待爬取完成。爬取完成后,你可以在当前目录下找到一个名为kyspider.csv的文件,其中包含了所有爬取到的考研信息。
阅读全文