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

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

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

2.请求爬取数据

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.定位想要的数据(其他数据也可以,同样找地址)

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

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,以此类推,可以通过遍历访问每一个页面。

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

修改url

3.输出并储存:

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

总结:将每一步整合:

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.mzph.cn/diannao/48670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android AutoSize屏幕适配:适配不同屏幕大小的尺寸,让我们无需去建立多个尺寸资源文件

目录 AutoSize是什么 AutoSize如何使用 一、AndroidautoSize是什么 在开发产品的时候,我们会遇到各种各样尺寸的屏幕,如果只使用一种尺寸去定义控件、文字的大小,那么到时候改起来就头皮发麻。以前使用dime的各种类库,文件太多…

PHP 7 新特性

PHP 7 新特性 PHP 7,作为PHP语言的一个重要版本,引入了许多新特性和性能改进,对开发效率和代码执行效率都有显著提升。本文将详细介绍PHP 7的一些主要新特性。 1. 性能提升 PHP 7最大的亮点之一是其性能的大幅提升。根据官方数据&#xff…

Spark调优特殊case- Task倾斜

首先我们观察下上面的stage5, Task MaxTime2.4Min, 但是stage5的整体耗时竟然可以达到55Min, 其实分区1000, 300个executor, 按照最大的TaskTime2.4Min来估算所有Task运行完成时间, 那么时间应该是- 2.4Min * 3 2.4Min 9.6Min 也就是最慢也就跑10分钟就…

对JVM及Java并发编程的简单了解

目录 引言 一、JVM内存结构 1. 程序计数器(Program Counter Register) 2. Java虚拟机栈(Java Virtual Machine Stack) 3. 本地方法栈(Native Method Stack) 4. 堆内存(Heap Memory&#x…

域名SSL证书安装记录(Nginx)

Tomcat和Nginx使用证书的方法不一样 1.在腾讯云控制台申请证书 需要按照流程,加上一条CNAME记录 2.将证书拷贝到Nginx所在的服务器上 例如: /usr/local/webserver/nginx/sslcertificate/followmentor.com_nginx3.配置nginx.conf 找域名对应443端口…

C++ | Leetcode C++题解之第274题H指数

题目&#xff1a; 题解&#xff1a; class Solution { public:int hIndex(vector<int>& citations) {int left0,rightcitations.size();int mid0,cnt0;while(left<right){// 1 防止死循环mid(leftright1)>>1;cnt0;for(int i0;i<citations.size();i){if(…

Kubernetes集群安装步骤

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、安装要求 在开始之前&#xff0c;部署Kubernetes集群集群需要满足以下几个条件&#xff1a; 一台多多台机器&#xff0c;操作系统CentOS.x-86_x…

数据结构——栈(顺序结构)

一、栈的定义 栈是一种数据结构&#xff0c;它是一种只能在一端进行插入和删除操作的特殊线性表。这一端被称为栈顶&#xff0c;另一端被称为栈底。栈按照后进先出&#xff08;LIFO&#xff09;的原则进行操作&#xff08;类似与手枪装弹后射出子弹的顺序&#xff09;。在计算…

【51项目】基于51单片机protues交通灯的设计(完整资料源码)

基于51单片机protues交通灯的设计 一、 项目背景 1.1背景 随着科技的不断发展,LED技术在交通领域的应用越来越广泛。LED模拟交通灯作为一种新型的交通信号控制设备,以其高效、节能、环保等优点,逐渐取代了传统的交通信号灯。近年来,我国城市化进程不断加快,城市人口和车辆…

iOS应用冷启动优化,可以做哪些事情

main()函数之后 首屏渲染不需要的&#xff0c;在首屏渲染完成后&#xff0c;异步执行&#xff1b;首屏渲染必要的&#xff0c;梳理依赖关系&#xff0c;生成启动树&#xff08;startTree&#xff09;&#xff0c;调用 root 节点的 start 方法&#xff0c;依次执行各个节点&…

服务攻防-应用协议cve

Cve-2015-3306 背景&#xff1a; ProFTPD 1.3.5中的mod_copy模块允许远程攻击者通过站点cpfr和site cpto命令读取和写入任意文件。 任何未经身份验证的客户端都可以利用这些命令将文件从文件系统的任何部分复制到选定的目标。 复制命令使用ProFTPD服务的权限执行&#xff0c;…

qt-C++笔记之json文件内容操作完整例程

qt-C笔记之json文件内容操作完整例程 code review! 文章目录 qt-C笔记之json文件内容操作完整例程1.运行输出2.运行后的test.json文件内容3.main.cpp 1.运行输出 读取到的 JSON 对象: {"Array": ["Item1","Item2"],"Name": "Ex…

掌握Xcode后台处理的艺术:iOS应用的隐形力量

掌握Xcode后台处理的艺术&#xff1a;iOS应用的隐形力量 在iOS应用开发中&#xff0c;后台处理能力是提升用户体验的关键因素之一。无论是在后台下载数据、播放音乐&#xff0c;还是在后台完成长时间运行的任务&#xff0c;Xcode都提供了强大的工具和API来支持这些操作。本文将…

jvm-证明cpu指令是乱序执行的案例

package jvm;/*** 证明cpu指令是乱序执行的** author 1* version 1.0* description: TODO* date 2024-07-19 9:31*/ public class T04_Disorder {private static int x 0, y 0;private static int a 0, b 0;public static void main(String[] args) throws InterruptedExcep…

B树:高效的数据存储结构

在计算机科学中&#xff0c;B树&#xff08;B-Tree&#xff09;是一种平衡多路查找树&#xff0c;它广泛应用于数据库和文件系统等需要高效数据存储和检索的场景。B树的设计旨在优化磁盘I/O操作&#xff0c;通过减少磁盘访问次数来提高数据检索的效率。本文将介绍B树的基本概念…

配置web服务器

当访问网站www.haha.com时显示&#xff1a;haha&#xff1b;当访问网站www.xixi.com/secret/显示&#xff1a;this is secret 第一步&#xff0c;配置一个新的IP 确认后 esc返回 第二步&#xff1a;重启ens160 第三步&#xff1a;创建目录&#xff0c;并且在文件内写入内容 第…

Python中with 关键字、tell() 和 seek() 方法

在 Python 编程中&#xff0c;文件操作是常见的任务之一。无论是读取数据还是写入数据&#xff0c;都需要对文件进行适当的管理和操作。本文将介绍如何使用 with 关键字来简化文件操作&#xff0c;并结合 tell() 和 seek() 方法实现灵活的文件指针控制。 with 关键字&#xff…

【b站/哔哩哔哩/bilibili】视频缓冲慢的解决方法

最近我的b站视频缓冲很慢&#xff0c;加载速度只有100多kb/s。这导致视频加载非常慢&#xff0c;看几秒就卡很久&#xff0c;有时候甚至黑屏。 据某些b站网友研究&#xff0c;b站存在如下问题&#xff1a;相关动态 “2.更改网络协议。是的&#xff0c;你没看错&#xff0c;转了…

RabbitMQ是什么?

RabbitMQ是一个开源的消息代理软件&#xff08;Message Broker&#xff09;&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff0c;Advanced Message Queuing Protocol&#xff09;&#xff0c;并支持多种消息传递协议。它最初由英国的Rabbit Technologies开发&…

力扣题解(盈利计划)

879. 盈利计划 集团里有 n 名员工&#xff0c;他们可以完成各种各样的工作创造利润。 第 i 种工作会产生 profit[i] 的利润&#xff0c;它要求 group[i] 名成员共同参与。如果成员参与了其中一项工作&#xff0c;就不能参与另一项工作。 工作的任何至少产生 minProfit 利润的…