请你用Python编写一个功能强大的爬虫,功能至少要有图片视频爬取等。
时间: 2024-09-20 22:05:48 浏览: 46
创建一个功能强大的Python爬虫需要结合多种库和技术,例如`requests`用于发送HTTP请求获取网页内容,`BeautifulSoup`或`lxml`解析HTML,`Scrapy`作为高级框架处理复杂的爬虫需求,以及`PIL`或`moviepy`处理图像和视频下载。以下是一个简单的示例,展示如何使用这些工具来抓取网页上的图片和链接:
```python
import requests
from bs4 import BeautifulSoup
import os
from urllib.parse import urljoin
# 定义目标URL
base_url = "https://example.com"
def download_images(url):
# 下载并保存图片
response = requests.get(url)
img_data = response.content
if response.status_code == 200:
file_name = os.path.basename(url)
with open(file_name, 'wb') as f:
f.write(img_data)
print(f"图片 {file_name} 已经下载")
else:
print("无法下载图片")
def extract_video_links(url):
soup = BeautifulSoup(requests.get(url).text, 'html.parser')
video_tags = soup.find_all('video') # 这里假设目标网站有video标签,根据实际情况修改
for tag in video_tags:
video_url = urljoin(base_url, tag['src'])
download_images(video_url)
def main():
# 爬取页面上的所有图片
html_content = requests.get(base_url).text
soup = BeautifulSoup(html_content, 'html.parser')
img_tags = soup.find_all('img') # 同样,这里找的是img标签
for img_tag in img_tags:
img_url = urljoin(base_url, img_tag['src'])
download_images(img_url)
# 提取并下载页面上链接到的视频
extract_video_links(base_url)
if __name__ == "__main__":
main()
```
请注意,实际的爬虫可能需要处理更复杂的情况,比如登录、反爬机制、动态加载的内容等。此外,对于视频抓取,上述代码仅作演示,因为不同的视频源可能有不同的格式和提取方式。
阅读全文