小白爬虫--Xpath定位信息--举一反三

断断续续学了好多次爬虫,始终没抓到重点,最近两天终于摸到点门路,发现定位信息是最重要的,定位好了,再借助解析库就可以提取想要的信息了。
基本套路如下:(爬虫三部曲)
第一,抓取网页源代码
url = “你爬取信息的网址”
headers = 请求头

import requests
r0 = requests.get(url,headers = headers)
s_code = r0.status_code

第二,定位信息,一般都是要爬取相同项目的多个内容,所有一般先定位总的位置。

#导入解析库
from lxml import etree
#测试是否状态码为200,是的话才能爬取
if s_code == 200:
    html = etree.HTML(r0.text)
else:
    pass

#定位总的位置
datas = html.xpath("得看网页源代码来写")

第三,遍历解析每个相同项目下的不同内容
一般会是这个样子的:

for data in datas:
	dataA = data.xpath("定位路径/text()") #抓取非图片类信息
	dataB = data.xpath("定位路径/") #图片类的一般会有 img吧
	print(dataA,dataB) #或者可以选择保存,这里为了突出简化学习过程,就用print了

大概是以上这个样子的过程。

热门文章

暂无图片
编程学习 ·

程序设计思想之模块

模块使用模块分割方法来进行系统构筑何为系统设计软件开发中的模块是什么功能与模块的关系软件系统的模块结构软件层驱动层硬件层连接模块的接口接口接口设计困难结束语 使用模块分割方法来进行系统构筑 何为系统设计 软件系统规模越大,制作起来就越困难。这和在建筑中建造狗窝…
暂无图片
编程学习 ·

理解持续测试,才算理解DevOps

软件产品的成功与否,在很大程度上取决于对市场需求的及时把控,采用DevOps可以加快产品交付速度,改善用户体验,从而有助于保持领先于竞争对手的优势。作为敏捷开发方法论的一种扩展,DevOps强调开发、测试和运维不同团队间的协作与沟通。持续集成和持续测试是一个在迭代中构…
暂无图片
编程学习 ·

处理服务器cpu 占用高达99%问题

102服务器cpu 占用高达99%,查看服务百度了下这个服务是 swap分区的作用是当物理内存不足时,会将一部分硬盘当做虚拟内存来使用。 kswapd0 占用过高是因为 物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高。 所以将服务器升级了内存和cpu 然而 服务器扩容…
暂无图片
编程学习 ·

网络管理

什么是网络管理 网络管理的基础设施 因特网标准管理框架 管理信息结构:SMI 管理信息库:MIB SNMP协议运行和传输映射 安全性和管理 ASN.1
暂无图片
编程学习 ·

Java new关键词的作用

文章目录new关键词的作用成员变量"字符串" new关键词的作用Person person = new Person();右边的new Person: 是以Person类为模板在堆中实例化一个对象。 右边的(): 意味着在对象实例化后,调用Person的构造器,对其初始化。 左边的Person person: 创建一个Person类…
暂无图片
编程学习 ·

Spring测试中的事务

目录 文章目录@Transactional @Transactional 1、测试方法加上该注解后事务自动回滚。 2、@BeforeEach与@AfterEach在测试方法的事务中执行 3、@BeforeTransactional与@AfterTransactional在事务执行之前之后执行;并且没有加@Transactional的测试方法不执行这两个注解下的方法…
暂无图片
编程学习 ·

jdk源码解析二之HashMap

这里写自定义目录标题HashMapputremovereplaceget扩容resize迭代器总结什么时候采用红黑树?为什么每次扩容后,是2的幂次方?为什么扩容后,相同的在原位置保存,而不同的则当前索引+之前原位置索引保存?为啥用尾插法?为什么线程不安全? HashMap HashMap的loadFactor为什么是0…
暂无图片
编程学习 ·

simulink模型延时

simulink模型如果输入与输出有联系形成回路你需要做的就是加一个延时,并且注意是连续的还是离散的
暂无图片
编程学习 ·

排序算法之插入排序、希尔排序、归并排序(C#)

插入排序 两次for循环,外层从数组第二位i=1开始,内层for循环由i向前进行判断,大于则将该位置与遍历位置交换。此时注意,不能按i的位置获取元素,应将该元素暂存,因为交换时对应i位置元素值会变换。c#代码如下/// <summary>/// 插入排序/// </summary>/// <…
暂无图片
编程学习 ·

Javaweb中的类:

filter //过滤器,解决中文字符集乱码util //数据库连接工具类entity //实体类dao //数据操作类servlet //servlet类
暂无图片
编程学习 ·

ElasticSearch 索引设置总结

在使用ES时,我们常见的就是需要生成一个template来定义索引的设置,分词器,Mapping.本文将基于项目经验来总结一些常用的配置。Index设置index.refresh_interval 配置一个刷新时间,将index buffer刷新到os cache的时间间隔,刷新到os cache的数据才可以被索引到,默认是1s.如…
暂无图片
编程学习 ·

美团点评旅游搜索召回策略的演进

本文内容与6月22日第22期美团点评技术沙龙“美团点评AI实践”主题演讲一致,欢迎大家去现场和作者交流。关注“美团点评技术团队”微信公众号,第一时间获取沙龙最新信息,还可以查阅往期沙龙PPT/视频。美团点评作为最大的生活服务平台,有丰富的品类可供用户选择,因此搜索这个…
暂无图片
编程学习 ·

备考第二天

系统论是研究系统的一般模式、结构和规律的科学。系统论的核心思想是整体观念。任何一个系统都是一个有机的整体,不是各个部件的机械组合和简单相加。系统的功能是各部件在孤立状态下所不具有的。系统论的能动性不仅在于认识系统的特点和规律,更重要地在于利用这些特点和规律去…
暂无图片
编程学习 ·

高绩效团队的秘密:高绩效团队的八大特征与六大打造步骤

受新冠疫情影响,世界各行各业都受到不同程度的经济冲击,在这种危机下,拥有一支高绩效团队,相信对于企业快速恢复企业元气是大有裨益的。大多数企业领导者都明白,高绩效团队是企业优秀和杰出的代表,是实现经营目标的关键,是面临危机的强大后盾。但并不是所有团队都叫做高…
暂无图片
编程学习 ·

7月1日 Day1

7月2日中午补 111 制定了最近的训练计划,大致方向 222 7月1日晚 CodeforcesRound#654(Div.2) 赛时水过了四题, EF待补 思路没有问题,代码需要重新写下. 补题: