python环境 下载对应的module
我这边获取的是只有一个table的情况,并且拥有分页
import requests
from bs4 import BeautifulSoup
import re
import pandas as pd
def get_page_data(url):
response = requests.get(url)
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'html.parser')
# print(soup)
# 在这里编写代码来提取您需要的数据
# 您可以使用BeautifulSoup的查找和选择器方法来定位和提取特定的数据
# 返回提取的数据
# 在这里编写代码来提取您需要的数据
# 假设您要提取标题和链接元素
table = soup.find('table') # 假设只有一个表格
rows = table.find_all('tr')
# 定义一个空列表来存储提取的数据
extracted_data = []
# 遍历表格行,提取数据并存储到列表中
for row in rows:
# 假设每行有两列
columns = row.find_all('td')
if len(columns) == 2:
data1 = columns[0].text.strip()
# print(data1)
data2 = columns[1].text.strip()
# 清洗数据,去除额外的空格和无效字符
data1 = re.sub(r'\s+', ' ', data1)
data2 = re.sub(r'\s+', ' ', data2)
# 对数据进行编码处理
data1 = data1.encode('utf-8').decode('utf-8')
data2 = data2.encode('utf-8').decode('utf-8')
extracted_data.append({'data1': data1, 'data2': data2})
# 返回提取的数据
return extracted_data
def scrape_paginated_data(base_url, num_pages):
all_data = []
for page in range(1, num_pages + 1):
# 构建分页的URL
url = base_url + '?' + str(page)
# print(url)
# 获取页面数据
page_data = get_page_data(url)
# print(page_data)
# 将数据添加到总数据列表中
all_data.extend(page_data)
return all_data
# 定义基础URL和要爬取的页数
base_url = ''
num_pages = 2
# 开始爬取数据
data = scrape_paginated_data(base_url, num_pages)
# 创建一个DataFrame对象
df = pd.DataFrame(data)
# 将DataFrame写入Excel文件
df.to_excel('data.xlsx', index=False) # 设置index=False以避免写入索引列
# print(data)
# 打印结果
# for item in data:
print(item)