用python写一个面向对象的爬虫类
时间: 2023-11-20 13:06:03 浏览: 36
好的,下面是一个面向对象的爬虫类的Python代码示例:
```python
import requests
class WebCrawler:
def __init__(self, url):
self.url = url
def download_html(self):
response = requests.get(self.url)
if response.status_code == 200:
html = response.text
return html
else:
return None
```
你可以通过实例化这个类,并调用其中的下载方法来获取指定网页的HTML文档。例如:
```python
crawler = WebCrawler('https://www.baidu.com')
html = crawler.download_html()
print(html)
```
可得到百度首页的HTML代码。请注意,这只是一个简单的示例,实际使用时需要考虑更多实现细节,如异常处理、编码处理等。
相关问题
用python面向对象写个爬虫示例
好的,以下是一个用 Python 面向对象编写的简单爬虫示例:
```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.html = ''
def get_html(self):
try:
response = requests.get(self.url, headers=self.headers)
response.raise_for_status()
self.html = response.text
except Exception as e:
print(e)
def parse_html(self):
soup = BeautifulSoup(self.html, 'html.parser')
links = []
for link in soup.find_all('a'):
links.append(link.get('href'))
return links
if __name__ == '__main__':
url = 'https://www.baidu.com'
spider = Spider(url)
spider.get_html()
links = spider.parse_html()
for link in links:
print(link)
```
以上代码实现了一个爬虫类 Spider,其中包含了获取网页 HTML 内容和解析 HTML 内容的方法。在初始化时,需要传入要爬取的 URL。在获取 HTML 内容时,使用 requests 库发起 GET 请求,并添加了 User-Agent 头以避免被网站屏蔽。在解析 HTML 内容时,使用 BeautifulSoup 库进行解析,并返回所有链接。
在主函数中,创建 Spider 类的实例,调用 get_html 方法获取 HTML 内容,然后调用 parse_html 方法解析 HTML 内容并返回链接。最后,遍历链接并打印出来。
用面向对象的方法写一段python爬虫代码
我可以回答这个问题。以下是一段使用面向对象的 Python 爬虫代码示例:
```python
import requests
from bs4 import BeautifulSoup
class WebScraper:
def __init__(self, url):
self.url = url
def scrape(self):
response = requests.get(self.url)
soup = BeautifulSoup(response.content, 'html.parser')
# 在这里添加你需要爬取的内容的代码
# 例如:soup.find_all('a') 或 soup.select('.class-name')
```
在这个示例中,我们定义了一个 `WebScraper` 类,它接收一个 URL 作为参数。`scrape` 方法使用 `requests` 库获取页面内容,然后使用 `BeautifulSoup` 库解析 HTML。你可以在 `scrape` 方法中添加你需要爬取的内容的代码。