编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法包含以下步骤:
- 确定抓取目标:豆瓣电影TOP100页面
- 分析页面结构:使用浏览器开发者工具,查看页面源码和网络请求,得到需要抓取的数据和请求URL
- 发送请求获取数据:使用Python发送HTTP请求,获取页面HTML代码,解析出需要的数据
- 抓取用户头像:根据用户ID构建请求URL,下载头像图片到本地
下面是两个示例:
- 抓取豆瓣电影TOP100页面的电影名称和评分
第一步:使用requests库发送HTTP请求获取页面HTML代码:
import requests
url = 'https://movie.douban.com/top250'
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'
}
response = requests.get(url, headers=headers)
html = response.text
第二步:使用BeautifulSoup库解析HTML代码,获取电影名称和评分:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', {'class': 'info'})
for movie in movies:
title_tag = movie.find('span', {'class': 'title'})
rating_tag = movie.find('span', {'class': 'rating_num'})
title = title_tag.get_text()
rating = rating_tag.get_text()
print(title, rating)
输出结果:
肖申克的救赎 9.7
霸王别姬 9.6
...
- 抓取用户头像并保存到本地
第一步:获取用户ID和头像URL
假设已经获取到电影详情页面的HTML代码,页面中有评论区,每个评论都有评论者的信息和头像。
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/subject/1292052/'
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'
}
response = requests.get(url, headers=headers)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
comments = soup.find_all('div', {'class': 'comment'})
for comment in comments:
avatar_tag = comment.find('div', {'class': 'avatar'})
avatar_url = avatar_tag.find('img')['src']
user_id = avatar_tag.find('a')['href'].split('/')[-2]
print(user_id, avatar_url)
输出结果:
bruce-lcs https://img1.doubanio.com/icon/u1368583-4.jpg
mengxiaoshuang https://img1.doubanio.com/icon/u3443720-154.jpg
第二步:下载头像图片到本地
根据头像URL,使用requests库发送HTTP请求,获取头像图片的二进制数据。然后使用Python内置的open()方法将二进制数据写入本地文件。
import requests
url = 'https://img1.doubanio.com/icon/u1368583-4.jpg'
response = requests.get(url)
with open('avatar.jpg', 'wb') as f:
f.write(response.content)
此时,当前目录下就生成了一个名为avatar.jpg的文件,即用户头像图片。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法 - Python技术站