位置: 编程技术 - 正文

Python 爬虫学习笔记之多线程爬虫(python爬虫教程推荐)

编辑:rootadmin

推荐整理分享Python 爬虫学习笔记之多线程爬虫(python爬虫教程推荐),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python爬虫基础教程,python爬虫入门教程,python爬虫自学系列,python爬虫入门教程,python爬虫入门,python爬虫自学系列,python爬虫自学系列,python爬虫自学系列,内容如对您有帮助,希望把文章链接给更多的朋友!

XPath 的安装以及使用

1 . XPath 的介绍

刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊。其实我个人认为学习一下正则表达式是大有益处的,之所以换成 XPath ,我个人认为是因为它定位更准确,使用更加便捷。可能有的人对 XPath 和正则表达式的区别不太清楚,举个例子来说吧,用正则表达式提取我们的内容,就好比说一个人想去天安门,地址的描述是左边有一个圆形建筑,右边是一个方形建筑,你去找吧,而使用 XPath 的话,地址的描述就变成了天安门的具体地址。怎么样?相比之下,哪种方式效率更高,找的更准确呢?

2 . XPath 的安装

XPath 包含在 lxml 库中,那么我们到哪里去下载呢? 点击此处 ,进入网页后按住 ctrl+f 搜索 lxml ,然后进行下载,下载完毕之后将文件拓展名改为 .zip ,然后进行解压,将名为 lxml 的文件夹复制粘贴到 Python 的 Lib 目录下,这样就安装完毕了。

3 . XPath 的使用

为了方便演示,我利用 Html 写了个简单的网页,代码如下所示(为了节省时间,方便小伙伴们直接进行测试,可直接复制粘贴我的代码)

用谷歌浏览器打开这个网页,然后右击,选择检查,会出现如下所示界面

这个时候你鼠标右击任何一行 html 代码,都可以看到一个 Copy,将鼠标放上去,就可以看到 Copy XPath ,先复制下来,怎么用呢?

看看打印结果

很显然,将我们想要的内容打印下来了,注意我们在 xpath() 中使用了 text() 函数,这个函数就是获取其中的内容,但是如果我们想获取一个属性,该怎么办?比如说我们想得到 html 中的两个链接地址,也就是 href 属性,我们可以这么操作

这个时候的打印结果就是

看到现在大家大概也就对 xpath() 中的符号有了一定的了解,比如一开始的 // 指的就是根目录,而 / 就是父节点下的子节点,其他的 id 属性也是一步一步从上往下寻找的,由于这是一种树结构,所以也难怪方法的名字为 etree()。

4 . XPath 的特殊用法

Python 爬虫学习笔记之多线程爬虫(python爬虫教程推荐)

面对上面的一个网页,我们应该如何获取到三行的内容的 &#; 嗯哼,很简单,我写三个 XPath 语句不就好了,so easy 。 如果真是这样,那么我们的效率好像是太低了一点,仔细看看这三行 div 的 id 属性,好像前四个字母都是 like, 那就好办了,我们可以使用 starts-with 对这三行进行同时提取,如下所示

content = selector.xpath('//div[starts-with(@id,"like")]/text()')

不过这样有一点麻烦的地方,我们就需要手动的去写 XPath 路径了,当然也可以复制粘贴下来在进行修改,这就是提升复杂度来换取效率的问题了。再来看看标签嵌套标签的提取情况

像上面这样的一个网页,如果我们想获取到 hello world Python 语句,该怎么获取呢?很明显这是一种标签嵌套标签的情况,我们按照正常情况进行提取,看看结果如何

运行之后,很遗憾的,只打印出了 hello 字样,其他字符丢失了,该怎么办呢?这种情况可以借助于 string(.)如下所示

这样就可以打印出正确内容了,至于第三行为什么存在,你可以将其去掉看看结果,到时候你自然就明白了。

Python 并行化的简单介绍

有人说 Python 中的并行化并不是真正的并行化,但是多线程还是能够显著提高我们代码的执行效率,为我们节省下来一大笔时间,下面我们就针对单线程和多线程进行时间上的比较。

打印结果为

至于以上链接为什么设置间隔为 ,是因为我发现在百度贴吧上没翻一页,pn 的值就会增加 。 通过以上结果我们发现,多线程相比于单线程效率提升了太多太多。至于以上代码中多线程的使用,我就不再过多讲解,我相信只要接触过 Java 的人对多线程的使用不会陌生,其实都是大差不差。没有接触过 Java ?那就对不起了,以上代码请自行消化吧。

实战 -- 爬取当当网书籍信息

一直以来都在当当网购买书籍,既然学会了如何利用 Python 爬取信息,那么首先就来爬取一下当当网中的书籍信息吧。本实战完成之后的内容如下所示

在当当网中搜索 Java ,出现了页内容,我选择爬取了前 页,而且为了比较多线程和单线程的效率,我特意在这里对二者进行了比较,其中单线程爬取所用时间为 s,而多线程仅为 s 。

如何爬取网页,在上面 XPath 的使用中我们也已经做了介绍,无非就是进入网页,右击选择检查,查看网页 html 代码,然后寻找规律,进行信息的提取,在这里就不在多介绍,由于代码比较短,所以在这里直接上源代码。

可见,以上代码中的知识,我们都在介绍 XPath 和 并行化 中做了详细的介绍,所以阅读起来十分轻松。

好了,到今天为止,Python 爬虫相关系列的文章到此结束,谢谢你的观看。

浅析Python中MySQLdb的事务处理功能 前言任何应用都离不开数据,所以在学习python的时候,当然也要学习一个如何用python操作数据库了。MySQLdb就是python对mysql数据库操作的模块。今天写了

Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理) 我们可以利用urllib来抓取远程的数据进行保存哦,以下是python3抓取网页资源的多种方法,有需要的可以参考借鉴。1、最简单importurllib.requestresponse=urllib.

Python基于sftp及rsa密匙实现远程拷贝文件的方法 本文实例讲述了Python基于sftp及rsa密匙实现远程拷贝文件的方法。分享给大家供大家参考,具体如下:如果两台服务器之间使用了RSA秘钥免密码登录的方

标签: python爬虫教程推荐

本文链接地址:https://www.jiuchutong.com/biancheng/384470.html 转载请保留说明!

上一篇:Python 爬虫学习笔记之单线程爬虫(python爬虫从入门到精通)

下一篇:浅析Python中MySQLdb的事务处理功能

  • 加计扣除减免税额怎么计算
  • 进项税额转出要交企业所得税吗
  • 购买理财产品是什么意思?
  • 销项税额的计算方法
  • 建筑公司没有资质可以施工吗
  • 偶然所得申报期限
  • 行政事业单位盘亏或毁损的固定资产
  • 出售股份的印花税怎么做分录?
  • 银行承兑个人可以接受吗
  • 企业代缴个人所得税打印完税证明
  • 增值税普通发票怎么开
  • 增值税免税收入汇算清缴的时候填哪
  • 以前年度的税务怎么查
  • 目前建筑里面税金总共包括几部分
  • 自产自销税点
  • 关于行邮税四档调三档
  • 税收分类编码选错了怎么办
  • 应付职工薪酬计入现金流量表哪里
  • 公司账上亏损
  • 工会工费缴纳标准
  • 员工福利没有发票
  • 银行利息收入的账务处理
  • 亏损企业季度盈利企业所得税怎么预缴?
  • 判决公告费应计入哪个科目?
  • 个人给单位垫付的款怎么做账
  • 员工因违反公司规章制度被辞退有补偿吗
  • 信息化投入包括什么投入和什么投入
  • 最新版小企业会计准则是哪一年的
  • 定向增发是什么融资方式
  • 招待客户住宿费可以抵扣进项税吗合理吗
  • 无形资产原值增加,净值减少的原因
  • 固定资产的处理方法
  • 个体工商户核定征收标准2023
  • 如何确定我的世界的区块
  • 电脑文件删除如何找到
  • mac怎么切换输入方式
  • rnbrcache.exe是什么意思
  • 出口货物如何开票入账
  • 企业缴纳职工社保政策
  • 研发费用税前加计扣除怎么算
  • 申报表已申报未交款后作废
  • 凭证字号怎么写
  • thinkphp,onethink和thinkox中验证码不显示的解决方法分析
  • 基于html的旅游网站设计源代码
  • 蓝桥杯b组2020
  • yolov4环境搭建
  • 发票纳税人识别号错了怎么解决
  • ldd命令详解
  • 会计记账凭证摘要如何编写
  • 研发费用税前加计扣除金额怎么算
  • 银行存款利息的会计科目
  • sql语句字符串比较大小
  • dedecms配置
  • 免税产品出口是否可以退税
  • 境外公司汇款给个人要交税吗
  • 三方协议是什么意思?
  • 增值税进项税额加计抵减政策
  • 固定资产到期后继续使用
  • 待认证进项税怎么转出
  • 收到国库退款
  • 零工发生事故算工伤吗
  • 技术服务费计入主营业务成本
  • 航天金税服务费发票在哪打印
  • 会计记账基础有哪两种
  • 设置账本应当遵循哪些原则
  • jquery常用的事件绑定函数有哪些
  • ultraiso刻录音乐到dvd
  • win10预览在哪里
  • 如何快速让你的钱变多
  • mac怎么快速上手
  • unity播放声音的方法
  • Cocos2d-x 3.0final 终结者系列教程23CocosStudio UI组件使用大全Cocos2d-x3.2使用
  • 按住鼠标右键拖动文件
  • shift妙用之解决shell编程中的入参问题
  • u3d unity3d
  • python教程目录
  • python中元祖的用法
  • 电子税务局登录方式
  • 湖南税务局发票查询
  • 一季度土地市场
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设