使用urllib3库爬取豆瓣电影检索页面。
时间: 2024-09-09 08:01:58 浏览: 40
使用urllib3库爬取豆瓣电影检索页面通常涉及以下几个步骤:
1. **安装urllib3**:首先确保你的Python环境已安装urllib3,如果没有,可以通过pip安装:
```
pip install urllib3
```
2. **引入所需模块**:
```python
import requests
from urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter
```
`requests`库是基于urllib3的,所以我们直接使用它。
3. **设置请求头**:为了模拟浏览器访问,需要添加适当的User-Agent头部信息,以防网站封禁爬虫:
```python
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'
}
```
4. **创建重试适配器**,以处理网络连接异常:
```python
retries = Retry(total=5, backoff_factor=0.1, status_forcelist=[500, 502, 503, 504])
adapter = HTTPAdapter(max_retries=retries)
session = requests.Session()
session.mount('http://', adapter)
session.mount('https://', adapter)
```
5. **构造URL并发送GET请求**:
```python
url = "https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=new_score"
response = session.get(url, headers=headers)
```
这里假设你想搜索“电影”标签为“爱情”的新评分页。
6. **检查响应状态码**:
```python
if response.status_code == 200:
print("成功获取页面")
else:
print(f"请求失败,状态码:{response.status_code}")
```
7. **解析返回的HTML内容**:
要提取具体的数据,你需要使用如BeautifulSoup这样的HTML解析库。这里是解析的一部分示例:
```python
soup = BeautifulSoup(response.text, 'html.parser')
movie_list = soup.find_all('div', class_='item')
```
8. **处理提取到的数据**:
根据网页结构,你可以遍历解析出的电影列表元素,提取标题、评分等信息,并按需要保存到CSV或数据库中。
注意:爬虫活动应遵守网站的robots.txt规则,并尊重版权。在实际应用中,可能会遇到反爬机制,这时可能需要使用代理IP、cookies等技术。
阅读全文