第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

Python爬蟲基礎(chǔ)學(xué)習(xí),從一個(gè)小案例來學(xué)習(xí)xpath匹配方法

標(biāo)簽:
Python

学习目的是为了实践,而实践又可以加深我们的学习效率,今天给大家带来了lxml库的xpath匹配方法的实例!教程大家网上搜索有很多,我们只看实用功能,当然,如果您已经很熟练了,可以跳过不看的!

开始前准备

版本:python3.6

工具:pycharm、lxml库(pip安装即可)

内容:新浪新闻搜索关键字抓取相关信息并保存本地txt文档

思路

我们先打开网页url,看下它的页面数据是怎么加载的

搜索世界杯,然后在开发者工具中先抓包看看是否为json数据,结果发现并没有,那么直接打开源代码看看呢

源代码往下翻,到1200行左右看内容,眼熟不?所有的新闻都在源代码中存在,那么就简单了!直接可以抓取相关内容

开始写代码吧

先介绍一下xpath的语法,其实各种教程都有写,我们只需要记住几点

它解析网页源代码的语法为etree.HTML(html)#html为网页源代码的文本形式

它的匹配方式为data.xpath('//a[@class=***]/text()')#data为上步解析后的源码或者指定源码

它匹配出来的结果为列表

尽量不要用开发者工具提供的复制xpath路径功能,因为它对于后期维护或者修改你的代码很不友好

ok,不啰嗦了,直接上代码了

python直播学习群542110741

可以看到几行代码直接获取了所有新闻的标题,简单说一下那几行代码

1、url,有人可能已经注意到了,我在代码中用的url和网页实际的有些不同,那是因为url中?后面的内容,如果&后面的参数没有结果的话,是可以省略的,还有可以省略的就是类似时间戳等等,大家可以尝试下!

2、html = requests.get(url)常规的获取网页源代码,用的是requests库,因为这个网站没有反爬,所以很容易就取到了

3、data = etree.HTML(html.text)这里就是上文所说,解析源码的语法,而且lxml解析源码还一个好处就是,如果源码中存在非闭合的标签或者不是很规范的标签,它会自动补全,非常实用!

4、重点来了:infos = data.xpath('//div[@class="r-info r-info2"]/h2/a')这行代码是获取源代码中带有"r-info r-info2"值的class属性,并且它在div标签中,然后在标签内容中查找h2标签及h2标签下的a标签,我们来看看网页中的位置

这里需要注意的是,尽量选择用class属性去定位是比较好的,因为它的属性一般都是功能唯一的,比较方便!大家可以先复制属性值然后去源代码中搜索,如果唯一或者所在的标签全部是需要的内容,那么就可以使用,如果不是,请往上级查找!

5、因为刚才定位到的标签是列表形式,所以用for循环来遍历取出,这里重点讲解下string(.)的用法:

上面的标签内容是非常方便的,标题就在a标签下的文本中,但是依然存在一种情况,比如标题中含有我们是搜索的关键字的时候,它就不是只存在a标签下了,比如下图

短短一行,存在2个标签,a和a标签下的span标签,那么这种情况下,我们就需要使用string(.)来匹配了,它的主要功能是取出所属标签下所有文本内容!所以我们的语法就成了info.xpath('string(.)',然后用print显示就达到了效果!

好了,语法大概说到这,我们将所有的标题和url、简介全部抓取下来,然后写到txt文档,篇幅有限就抓5页的内容吧!

ok,内容全部写到文件了,当然了,还可以继续往下写,比如进入每一个新闻页面,抓取所有文本内容,也是一样的写法,大家有兴趣的可以自行完善哦!

最后

推荐一个我个人的学习方法,那就是多看多听多练!多看看大神的教程、博客、经验总结等等,多听听大神的思路分析,最重要的是多练,代码一定要多写!代码一定要多写!代码一定要多写!这样才能更快的学习进步!!大家加油



作者:python教程
链接:https://www.jianshu.com/p/8479121f472f
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消