编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法包含以下步骤:

  1. 确定抓取目标:豆瓣电影TOP100页面
  2. 分析页面结构:使用浏览器开发者工具,查看页面源码和网络请求,得到需要抓取的数据和请求URL
  3. 发送请求获取数据:使用Python发送HTTP请求,获取页面HTML代码,解析出需要的数据
  4. 抓取用户头像:根据用户ID构建请求URL,下载头像图片到本地

下面是两个示例:

  1. 抓取豆瓣电影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
...
  1. 抓取用户头像并保存到本地

第一步:获取用户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技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 深入了解python基于tkinter写的画图项目

    下面我将为你详细讲解深入了解Python基于Tkinter写的画图项目的攻略: 1. 准备工作 首先,你需要安装Python和Tkinter模块。请确保你的Python版本为3.0或以上版本,因为Tkinter在2.x版本中与Tkinter的外观颜色和字体有关的主题是不可用的。 2. 设置画布和控件 要在Tkinter中创建画图应用程序,需要创建一个窗口和一…

    python 2023年5月19日
    00
  • Python中的内存管理之python list内存使用详解

    Python中的内存管理之python list内存使用详解 在Python中,列表(list)是一种常用的数据类型,它可以存储多个元素,并且支持动态扩容。在使用列表时,需要注意其内存使用情况,以避免出现内存泄漏等问题。本文将详细讲解Python中列表的内存使用情况,包括列表的内存分配、内存释放、内存管理等方面。 列表的内存分配 在Python中,列表的内存…

    python 2023年5月13日
    00
  • Python编程批量实现md5加密pdf文件

    我可以为您详细讲解如何使用Python编程批量实现md5加密pdf文件,具体步骤如下: 准备工作 安装Python环境。Python是一门强大的编程语言,我们需要在本地安装Python环境才能开始编写代码。您可以在Python官网下载并安装最新版本的Python。 安装需要的库。我们需要使用PyPDF2库来处理PDF文件,并使用hashlib库实现md5加密…

    python 2023年6月3日
    00
  • 用 python 进行微信好友信息分析

    下面我将为您详细讲解用Python进行微信好友信息分析的实例教程。 1. 环境搭建 在进行微信好友信息分析之前,我们需要先搭建好相应的环境。具体步骤如下: 1.1 安装itchat库 首先,我们需要安装一个名为itchat的Python库,它可以实现通过Python控制微信的功能。 你可以通过以下命令在命令行中安装itchat: pip install it…

    python 2023年5月13日
    00
  • 详解python学习笔记之解释器

    Python解释器是Python语言的核心组件之一,它可以将Python代码转换为机器语言并执行。以下是详解Python学习笔记之解释器的完整攻略,包含两个示例。 示例1:使用Python解释器执行Python代码 以下是一个示例,可以使用Python解释器执行Python代码: 步骤1:安装Python解释器 在使用Python解释器执行Python代码之…

    python 2023年5月15日
    00
  • pycharm如何创建Python关联文件?pycharm创建Python关联文件的方法

    Pycharm可以创建Python关联文件,将这些关联文件与.py文件关联起来,这样在运行.py文件时就会一并运行与之关联的文件。以下是创建Python关联文件的方法。 1. 创建Python关联文件的方法 1.1 打开Pycharm 首先,需要打开Pycharm。如果你还没有Pycharm,可以从官网下载:https://www.jetbrains.com…

    python 2023年5月18日
    00
  • Python 爬虫修养-处理动态网页

    《Python 爬虫修养-处理动态网页》是一本深入讲解Python爬虫处理动态网页的技巧和方法的书籍。下面将为大家详细讲解这本书的完整攻略: 第一章:理解动态网页 本章主要介绍了静态网页和动态网页的区别,如何判断一个网页是静态网页还是动态网页,以及动态网页的数据采集和解析方法等。 第二章:了解动态网页框架 本章主要介绍了常见的动态网页框架,如Ajax、Ang…

    python 2023年5月14日
    00
  • 无法在 Python 2.7 中为 ldap 设置 TIMEOUT

    【问题标题】:Unable to set TIMEOUT for ldap in Python 2.7无法在 Python 2.7 中为 ldap 设置 TIMEOUT 【发布时间】:2023-04-04 10:56:01 【问题描述】: 我想为 ldap 库 (python-ldap-2.4.15-2.el7.x86_64) 和 python 2.7 设置…

    Python开发 2023年4月6日
    00
合作推广
合作推广
分享本页
返回顶部