Python 爬虫实战----3(实力展现)

devtools/2024/9/22 6:58:18/

实战:获取豆瓣电影top250的电影名字

1.获取url:打开网站按发f12,点击网络,刷新找到第一个截取url和User-Agent。

2.请求爬取数据

python">mport requests
import fake_useragent
from lxml import etree
import re
#UA
head = {"User-Agent": fake_useragent.UserAgent().random}#这里使用了fake_useragent,会自动生成一个user-agenturl = "https://movie.douban.com/top250"
response = requests.get(url, headers=head)

2.定位想要的数据(其他数据也可以,同样找地址)

在元素中定位(列表一般都是有序的,所以只用定位一个例子)

python">response = requests.get(url, headers=head)
res_text = response.text
tree = etree.HTML(res_text)
#定位需要的数据
list_li=tree.xpath("//ol[@class='grid_view']/li")
for li in list_li:movie_name="".join(li.xpath(".//span[@class='title'][1]/text()"))

我们进入下一个页面,发现下一个页面多了start=25的参数,可判断下下个页面是start=50,以此类推,可以通过遍历访问每一个页面。

python">https://movie.douban.com/top250?start=25&filter=
python">for i in range(0, 250, 25):url = f"https://movie.douban.com/top250?start={i}&filter="

修改url

3.输出并储存:

python"># 打开一个文件写入数据
fp = open("./doubanFilm.txt", "w", encoding="utf8")
fp.write(movie_name+"\n")print(movie_name)
fp.close()

总结:将每一步整合:

python">import requests
import fake_useragent
from lxml import etree#UA
head = {"User-Agent": fake_useragent.UserAgent().random}
# 打开一个文件写入数据
fp = open("./doubanFilm.txt", "w", encoding="utf8")for i in range(0, 250, 25):url = f"https://movie.douban.com/top250?start={i}&filter="response = requests.get(url, headers=head)res_text = response.texttree = etree.HTML(res_text)
#定位需要的数据list_li=tree.xpath("//ol[@class='grid_view']/li")for li in list_li:movie_name="".join(li.xpath(".//span[@class='title'][1]/text()"))fp.write(movie_name+"\n")print(movie_name)
fp.close()

运行:

运行成功,想要其他的数据也是可行的,只需找到需要的地址,以一个为例即可,每个的规律相同

爬虫重在仔细,耐心。


http://www.ppmy.cn/devtools/85091.html

相关文章

SSH跨操作系统免密文件传输

目录 一、Windows如何通过SSH向Linux系统传输文件 1.1. 安装SSH客户端: 1.2. 配置WinSCP: 1.3. 传输文件: 1.4. 文件传输免输入密码、RSA公钥设置流程 二、Linux系统之间的文件传输 2.1. 使用scp命令: 2.2. 从远程服务器下…

【Git多人协作开发】不同的分支下的多人协作开发模式

目录 0.前言背景 1.开发者1☞完成准备工作&协作开发 1.1查看分支情况 1.2创建本地分支feature-1 1.3三板斧 1.4push推本地分支feature-1到远程仓库 2.开发者2☞完成准备工作&协作开发 2.1创建本地分支feature-2 2.2三板斧 2.2push推送本地feature-2到远程仓库…

pytorch中的面向对象编程方法

一、__xxx__形式的魔法方法 我们可以经常在python代码片段中看到类的定义,其中第一个被定义的方法往往是__init__,如下所示: class Accumulator: """在n个变量上累加"""def __init__(self, n):self.data […

PHP压缩打包,下载目录或者文件,解压zip文件

函数 /*** 压缩整个文件夹为zip文件* 本地需要绝对路径,服务器需要相对路径*/function makeZipFile($zip_path , $folder_path ) {$rootPath realpath($folder_path);$zip new ZipArchive(); // $zip->open($zip_path, ZipArchive::CREATE | ZipArchi…

Spring Bean - xml 配置文件创建对象

类型&#xff1a; 1、值类型 2、null &#xff08;标签&#xff09; 3、特殊符号 &#xff08;< -> < &#xff09; 4、CDATA <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/bea…

go-kratos 学习笔记(5) 删除hellword从新生成服务

go-kratos 删除hellword模版里的服务&#xff0c;从新生成服务users 直接删除api/helloword 目录&#xff0c;在api目录下新建 users目录&#xff1b;使用命令生成新的proto #项目根目录执行 kratos proto add api/users/user.protobuf generate生成的user.proto需要根据自己…

Laravel:揭秘PHP世界中最优雅的艺术品

1. 引言 在PHP的世界里&#xff0c;框架如繁星般璀璨&#xff0c;但Laravel以其独特的魅力和优雅&#xff0c;成为了众多开发者心中的艺术品。本文将深入探讨Laravel为何能在众多PHP框架中脱颖而出&#xff0c;成为最优雅的选择。 1.1 Laravel的诞生背景 Laravel的诞生可以…

2024秋招算法

文章目录 参考资料刷题感悟一 数组1.1 二分查找1.2 移除元素1.3 长度最小的子数组1.4 螺旋矩阵1.5 在排序数组中查找元素的第一个和最后一个位置 二 链表2.1 移除链表元素2.2 设计链表2.3 反转链表2.4 两两交换链表中的节点2.5 删除链表的倒数第N个节点2.6 链表相交2.7 环形链表…