python爬虫豆瓣大作业-Python爬虫案例:抓取豆瓣编程类高评分书籍
时间: 2023-06-29 18:19:03 浏览: 194
好的,以下是抓取豆瓣编程类高评分书籍的Python代码:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://book.douban.com/tag/%E7%BC%96%E7%A8%8B'
books = []
for i in range(0, 100, 20):
r = requests.get(url + '?start=' + str(i))
soup = BeautifulSoup(r.text, 'html.parser')
items = soup.find_all(class_='subject-item')
for item in items:
title = item.find(class_='info').find('a')['title']
rating = item.find(class_='rating_nums').get_text()
if float(rating) >= 8.0:
books.append(title)
for i, book in enumerate(books):
print(str(i+1) + '. ' + book)
```
这段代码会抓取豆瓣编程类标签下评分高于8.0的书籍名称,并以列表形式输出。请注意,在实际应用中需要注意合适的爬虫策略,以避免对豆瓣网站造成不必要的干扰。
相关问题
Python爬虫案例:抓取豆瓣编程类高评分书籍
好的,您的问题是关于Python爬虫的。以下是一个简单的Python爬虫案例,用于抓取豆瓣编程类高评分书籍:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://book.douban.com/tag/%E7%BC%96%E7%A8%8B'
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.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
book_list = soup.find_all('li', class_='subject-item')
for book in book_list:
title = book.find('div', class_='info').a.get_text().strip()
rating = book.find('span', class_='rating_nums').get_text().strip()
print(title, rating)
```
以上代码使用requests库获取网页内容,使用BeautifulSoup库解析网页内容并查找书籍信息。在此基础上,我们可以通过修改url参数来抓取不同类型的书籍。
Python爬虫考试 -- 豆瓣电影明星图片抓取: 已知豆瓣电影链接如下:https://movie.douban.com/
### 使用 Python 编写爬虫抓取豆瓣电影明星图片
为了实现这一目标,可以采用 `requests` 和 `BeautifulSoup` 库来处理网页请求和解析 HTML 文档。需要注意的是,在实际操作前应当阅读并遵守网站的服务条款以及 robots.txt 文件中的规定[^1]。
#### 安装所需库
首先安装必要的第三方库:
```bash
pip install requests beautifulsoup4 lxml
```
#### 导入模块与设置头部信息
导入所需的 Python 模块,并模拟浏览器访问行为以提高成功率:
```python
import os
from urllib.request import urlretrieve
import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
}
```
#### 获取页面内容
定义函数用于发送 HTTP 请求获取指定 URL 的响应数据:
```python
def get_page(url):
try:
response = requests.get(url=url, headers=headers)
if response.status_code == 200:
return response.text
else:
print(f'Failed to load page {url}')
return None
except Exception as e:
print(e)
return None
```
#### 解析HTML文档提取图片链接
创建一个新的方法用来分析返回的内容找到所有的演员头像URL地址:
```python
def parse_html(html_content):
soup = BeautifulSoup(html_content,'lxml')
items = soup.find_all('div', class_='item')[:10]
image_urls = []
for item in items:
img_tag = item.select_one('.pic a img')['src']
image_urls.append(img_tag)
return image_urls
```
#### 下载图片保存到本地文件夹
最后一步就是遍历上述获得的列表下载每一张照片存储至特定目录下:
```python
def download_images(image_links, save_path='./images'):
if not os.path.exists(save_path):
os.makedirs(save_path)
for index, link in enumerate(image_links):
filename = f'{save_path}/actor_{index}.jpg'
urlretrieve(link,filename=filename)
print(f'Downloaded: {link} -> {filename}')
if __name__ == '__main__':
target_url = "https://movie.douban.com/"
html_data = get_page(target_url)
if html_data is not None:
images_list = parse_html(html_data)
download_images(images_list)
```
此段脚本实现了从给定的目标网址开始,自动查找并下载前十位演员的照片。当然这只是一个简单的例子,真实环境中可能还需要考虑更多因素比如异常情况下的重试机制、多线程加速下载速度等优化措施。
阅读全文
相关推荐
















