请你用Python编写一个功能强大的爬虫,功能包括要有图片爬取、数据爬取等。
时间: 2024-10-25 21:11:14 浏览: 26
编写一个功能强大的Python爬虫通常会涉及BeautifulSoup库用于HTML解析,requests库用于发送HTTP请求,PIL库用于图片下载,以及像pandas或json库用于数据存储。以下是一个基本框架示例:
```python
import requests
from bs4 import BeautifulSoup
import os
import pandas as pd
# 定义一个函数来获取网页内容
def get_html(url):
response = requests.get(url)
if response.status_code == 200:
return response.text
else:
print(f"无法获取页面:{response.status_code}")
# 使用BeautifulSoup解析HTML
def parse_html(html):
soup = BeautifulSoup(html, 'html.parser')
# 图片爬取
img_tags = soup.find_all('img', src=True) # 找到所有src属性存在的图片标签
for img in img_tags:
img_url = img['src']
download_image(img_url)
# 下载图片到本地
def download_image(img_url):
file_name = os.path.basename(img_url)
with open(file_name, 'wb') as f:
img_data = requests.get(img_url).content
f.write(img_data)
# 数据爬取
def extract_data(soup):
data_list = []
# 根据实际需求替换下面的提取逻辑
table = soup.find('table') # 如果有表格
for row in table.find_all('tr'):
cols = row.find_all('td')
data_list.append([col.text.strip() for col in cols])
df = pd.DataFrame(data_list, columns=['列1', '列2']) # 例如这里是两列数据
return df
# 主程序调用
url = 'https://example.com'
html_content = get_html(url)
parsed_soup = parse_html(html_content)
data_df = extract_data(parsed_soup)
data_df.to_csv('output.csv', index=False) # 存储数据
```
这个例子只是一个基础版本,实际应用中需要根据目标网站的具体结构和权限限制进行调整。另外,记得遵守网站的robots.txt规则,并尊重版权,合法合理地使用爬虫。
阅读全文