selenium+xpath爬取二手房标题

贝壳找房标题爬取需要注意的是,在页面中间有一个小广告

而他就在ul的li下面,当我们进行title所以输出时,会报错。

所以在进行页面解析之前必须把广告叉掉,不然也把广告那一部分的li给爬取下来了

所以,我们,定位到上面箭头那里,进行 x掉,也就是利用click事件进行处理

然后第二个就是当进行下一页时,url会更换

所以当我们要第23456……页时,必须刷新新的url

(如果换页时,url没变的情况下,则只需元素定位到下一页的按钮进行click事件处理即可)。

要注意的就是以上那么多,代码如下

 

from selenium import webdriver
from lxml import etree
from selenium.webdriver.common.by import By
from time import sleep
from selenium.webdriver import ChromeOptions
cho=ChromeOptions()
cho.add_experimental_option('excludeSwitches',['enable-automation'])
#浏览器驱动
bro=webdriver.Chrome(options=cho)
sleep(1)
all_page=[]
for i in range(5):bro.get(f'https://bj.ke.com/ershoufang/pg{i+1}/')# 睡个两秒,防止页面没有加载完成sleep(2)#把广告去掉,因为广告是ul下的一个li。bro.find_element(By.CLASS_NAME,'daoliu_close').click()#点击后进行解析,并且放进列表里面all_page.append(bro.page_source)print(f'已经把第{i+1}页HTML内容放入列表中')print('--------------------------------------------------------------------------------------------------------------')s=1
#页面列表循环遍历进行解析。
for page in all_page:tree=etree.HTML(page)#睡个两秒,防止页面没有加载完成sleep(2)li_list=tree.xpath('/html/body/div[1]/div[4]/div[1]/div[4]/ul/li')#再睡个两秒,防止页面没有加载完成sleep(2)print(f"正在爬取第{s}页内容****************************************************")sleep(1)#打印测试有没有空元素print(len(li_list))for dl in li_list:title=dl.xpath('./a/@title')[0]#@title只有一个所以【0】就行print(title)print(f'第{s}爬取完成*********************************************************')s=s+1sleep(1)
sleep(2)
bro.quit()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/218757.html

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

相关文章

开机0xc000000e修复方式,电脑出现错误代码0xc000000e

0xc000000e是Windows操作系统中的一个常见错误代码。错误代码0xc000000e表示操作系统无法找到正确的启动设备或引导记录损坏,导致电脑无法正常启动。今天的这篇文章将和大家分享一些关于开机0xc000000e修复的方法。 一.电脑出现开机0xc000000e的原因 开机出现0xc00…

微服务实战系列之ZooKeeper(中)

前言 昨日博主的第一篇ZooKeeper,对它自身具备的能力做了初步介绍。书接上文,马不停蹄,我们继续挖掘它内在的美,充分把握它的核心与脉络。 揭秘ZooKeeper Q:集群一致性协同是如何进行的 我们讲到分布式,…

设计模式之结构型设计模式(二):工厂模式 抽象工厂模式 建造者模式

工厂模式 Factory 1、什么是工厂模式 工厂模式旨在提供一种统一的接口来创建对象,而将具体的对象实例化的过程延迟到子类或者具体实现中。有助于降低客户端代码与被创建对象之间的耦合度,提高代码的灵活性和可维护性。 定义了一个创建对象的接口&…

持续集成交付CICD:Jenkins使用GitLab共享库实现基于SaltStack的CD流水线部署前后端应用

目录 一、实验 1.Jenkins使用GitLab共享库实现基于SaltStack的CD流水线部署前后端应用 2.优化共享库代码 二、问题 1.Jenkins手动构建后端项目流水线报错 一、实验 1.Jenkins使用GitLab共享库实现基于SaltStack的CD流水线部署前后端应用 (1)GitLa…

【Jenkins】Centos环境安装Jenkins(通过rpm安装)

在Centos操作系统中通过rpm安装Jenkins 参考官网 https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos 1、下载安装Jdk17 下载安装 # 更新您的系统,不一定需要 # sudo yum -y update # 安装将用于下载 Java 17 二进制文件的 wget 命令行工具。 s…

Python基础01-环境搭建与输入输出

零、文章目录 Python基础01-环境搭建与输入输出 1、Python概述 (1)为什么要学习Python 技术趋势:Python自带明星属性,热度稳居编程语言界前三 简单易学:开发代码少,精确表达需求逻辑;33个关…

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion 黑白老照片上色修复

在这个时代,我们习惯于拥有高清、色彩丰富的照片,然而,那些古老的黑白色老照片由于年代的久远,往往会出现模糊、破损等现象。 那么今天要给大家介绍的是,用 Stable Diffusion 来修复老照片。 前段时间 ControlNet 的除了上线了“IP-Adapter”模型以外还增加另一个…

【ArkTS】生命周期

页面生命周期 通常Entry修饰的组件称为页面,其拥有页面生命周期 onPageShow:页面每次显示时触发。onPageHide:页面每次隐藏时触发(通常是路由跳转到其他页面了)。onBackPress:当用户点击返回按钮时时触发…

【MySQL】库的操作

数据库的操作 所有操作命令: //创建数据库 create database 数据库名字 charsetutf8 collate utf8_general_ci //查看字符集 show charset; //查看校验规则 show collation; //查看所有的数据库。 show databases; //显…

springboot+jdbcTemplate+sqlite编程示例——以沪深300成分股数据处理为例

引言 我们在自己做一些小的项目或者小的数据处理分析的时候,很多时候是不需要用到mysql这样的大型数据库,并且也不需要用到maven这样很重的框架的,取而代之可以使用jdbcTemplatesqlite这样的组合。 本文就介绍一下使用springbootjdbcTempla…

LeetCode-反转链表问题

1.反转链表 题目描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路: 反转链表也就是链表倒置,我一直以来的办法就是先建立一个头节点,之后再遍历链表来进行头插。 代码&#xff1…

【深度学习】强化学习(三)强化学习的目标函数

文章目录 一、强化学习问题1、交互的对象2、强化学习的基本要素3、策略(Policy)4、马尔可夫决策过程5、强化学习的目标函数1. 总回报(Return)2. 折扣回报(Discounted Return)a. 折扣率b. 折扣回报的定义 3.…

【web安全】密码爆破讲解,以及burp的爆破功能使用方法

前言 菜某总结,欢迎指正错误进行补充 密码暴力破解原理 暴力破解实际就是疯狂的输入密码进行尝试登录,针对有的人喜欢用一些个人信息当做密码,有的人喜欢用一些很简单的低强度密码,我们就可以针对性的生成一个字典,…

NO-IOT翻频,什么是翻频,电信为什么翻频

1.1 翻频迁移最终的目的就是减少网络的相互干扰,提供使用质量. 1.2 随着与日俱增的网络规模的扩大,网内干扰已成了影响网络的质量标准之一,为了保障电信上网体验,满足用户日益增长的网速需求,更好的服务客户,电信针对…

CSS学习

CSS学习 1. 什么是css?2.css引入方式2.1 内嵌式2.2 外联式2.3 行内式2.4 引入方式特点 3. 基础选择器3.1 标签选择器3.2 类选择器3.3 id选择器3.4 通配符选择器 4. 文字基本样式4.1 字体样式4.1.1 字体大小4.1.2 字体粗细4.1.3 倾斜4.1.4 字体4.1.5 字体font相关属性连写 4.2 …

TrustZone之总线请求

接下来,我们将查看系统中的总线请求者,如下图所示: 系统中的A型处理器具有TrustZone感知,并在每个总线访问中发送正确的安全状态。然而,大多数现代SoC还包含非处理器总线请求者,例如GPU和DMA控制器。 与完成…

[蓝桥杯刷题]合并区间、最长不连续子序列、最长不重复数组长度

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录: 成功的关键在于对目标的持久追求。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 数据库 文章目录 前言合并区间问题📕现实应用大致思路代码实现代码讲解 最长不连续子序列&a…

获取和移除cookie的方法

下载npm的cookie插件, 在utils.js文件中引入插件: 封装原始的Cookies.get()方法: 在xxxx.vue文件中引入方法: 使用getCookie方法获取cookie: 封装 移除cookie: export const removeCookie name>{ const options { path: /, domain: xxx.com }; Cookies.remove(name, opti…

音频DAC,ADC,CODEC的选型分析,高性能立体声

想要让模拟信号和数字信号顺利“交往”,就需要一座像“鹊桥”一样的中介,将两种不同的语言转变成统一的语言,消除无语言障碍。这座鹊桥就是转换器芯片,也就是ADC芯片。ADC芯片的全称是Analog-to-Digital Converter, 即模拟数字转换…

二叉搜索树的实现

本文旨在讲解如何编写一颗二叉搜索树,包括基本的增删查改的操作。 目录 一、二叉搜索树的概念 ​编辑二、二叉搜索树的编写 2.1节点的编写 2.2节点的插入 2.3节点的查找 2.4节点的删除 三、二叉搜索树的应用 四、 二叉搜索树的性能分析 五、完整代码 一、…