用python写一个通用爬虫框架
时间: 2023-09-14 21:14:18 浏览: 102
作为AI语言模型,我可以给您提供一个简单的Python爬虫框架示例。以下是一个基于requests和BeautifulSoup库的通用爬虫框架:
```python
import requests
from bs4 import BeautifulSoup
class Spider:
def __init__(self, url):
self.url = url
self.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'}
self.response = requests.get(url, headers=self.headers)
self.soup = BeautifulSoup(self.response.content, 'html.parser')
def get_links(self):
links = []
for link in self.soup.find_all('a'):
href = link.get('href')
if href and href.startswith('http'):
links.append(href)
return links
def get_images(self):
images = []
for img in self.soup.find_all('img'):
src = img.get('src')
if src and src.startswith('http'):
images.append(src)
return images
def get_texts(self):
texts = []
for p in self.soup.find_all('p'):
texts.append(p.text.strip())
return texts
if __name__ == '__main__':
spider = Spider('https://www.example.com')
print(spider.get_links())
print(spider.get_images())
print(spider.get_texts())
```
这个爬虫框架首先通过requests库发送一个GET请求获取网页内容,然后使用BeautifulSoup库解析网页内容。它提供了三个基本的方法:get_links(获取所有链接),get_images(获取所有图片),get_texts(获取所有文本段落)。您可以根据需要添加其他方法或自定义方法来解析网页内容。
阅读全文