成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python爬蟲(chóng)新手入門之初學(xué)lxml庫(kù)

瀏覽:200日期:2022-07-01 16:20:17
1.爬蟲(chóng)是什么

所謂爬蟲(chóng),就是按照一定的規(guī)則,自動(dòng)的從網(wǎng)絡(luò)中抓取信息的程序或者腳本。萬(wàn)維網(wǎng)就像一個(gè)巨大的蜘蛛網(wǎng),我們的爬蟲(chóng)就是上面的一個(gè)蜘蛛,不斷的去抓取我們需要的信息。

2.爬蟲(chóng)三要素 抓取 分析 存儲(chǔ)3.爬蟲(chóng)的過(guò)程分析

當(dāng)人類去訪問(wèn)一個(gè)網(wǎng)頁(yè)時(shí),是如何進(jìn)行的?

①打開(kāi)瀏覽器,輸入要訪問(wèn)的網(wǎng)址,發(fā)起請(qǐng)求。

②等待服務(wù)器返回?cái)?shù)據(jù),通過(guò)瀏覽器加載網(wǎng)頁(yè)。

③從網(wǎng)頁(yè)中找到自己需要的數(shù)據(jù)(文本、圖片、文件等等)。

④保存自己需要的數(shù)據(jù)。

對(duì)于爬蟲(chóng),也是類似的。它模仿人類請(qǐng)求網(wǎng)頁(yè)的過(guò)程,但是又稍有不同。

首先,對(duì)應(yīng)于上面的①和②步驟,我們要利用python實(shí)現(xiàn)請(qǐng)求一個(gè)網(wǎng)頁(yè)的功能。

其次,對(duì)應(yīng)于上面的③步驟,我們要利用python實(shí)現(xiàn)解析請(qǐng)求到的網(wǎng)頁(yè)的功能。

最后,對(duì)于上面的④步驟,我們要利用python實(shí)現(xiàn)保存數(shù)據(jù)的功能。

因?yàn)槭侵v一個(gè)簡(jiǎn)單的爬蟲(chóng)嘛,所以一些其他的復(fù)雜操作這里就不說(shuō)了。下面,針對(duì)上面幾個(gè)功能,逐一進(jìn)行分析。

4.如何用python請(qǐng)求一個(gè)網(wǎng)頁(yè)

作為一門擁有豐富類庫(kù)的編程語(yǔ)言,利用python請(qǐng)求網(wǎng)頁(yè)完全不在話下。這里推薦一個(gè)非常好用的類庫(kù)urllib.request。

4.1.抓取網(wǎng)頁(yè)

urllib庫(kù)使用

import urllib.request response = urllib.request.urlopen(’https://laoniu.blog.csdn.net/’)print(response.read().decode(’utf-8’))

這樣就可以抓取csdn我的主頁(yè)的html文檔

我們使用爬蟲(chóng)就是需要在網(wǎng)頁(yè)中提取我們需要的數(shù)據(jù),接下來(lái)我們來(lái)學(xué)習(xí)抓取一下百度搜索頁(yè)的熱榜數(shù)據(jù)

Python爬蟲(chóng)新手入門之初學(xué)lxml庫(kù)

4.2.如何解析網(wǎng)頁(yè)呢

使用lxml庫(kù)

lxml 是一種使用 Python 編寫(xiě)的庫(kù),可以迅速、靈活地處理 XML 和 HTML。

它支持 XML Path Language (XPath) 和 Extensible Stylesheet Language Transformation (XSLT),并且實(shí)現(xiàn)了常見(jiàn)的 ElementTree API。

安裝

windows下安裝

#pip方式安裝pip3 install lxml #wheel方式安裝 #下載對(duì)應(yīng)系統(tǒng)版本的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxmlpip3 install lxml-4.2.1-cp36-cp36m-win_amd64.whl

linux下安裝

yum install -y epel-release libxslt-devel libxml2-devel openssl-devel pip3 install lxml

環(huán)境/版本一覽:

開(kāi)發(fā)工具:PyCharm 2020.2.3 python:3.8.54.3.編寫(xiě)代碼

import urllib.requestfrom lxml import etree # 獲取百度熱榜url = 'https://www.baidu.com/s?ie=UTF-8&wd=1'# 我們?cè)谡?qǐng)求頭加入U(xiǎn)ser-Agent參數(shù),這樣可以讓服務(wù)端認(rèn)為此次請(qǐng)求是用戶通過(guò)瀏覽器發(fā)起的正常請(qǐng)求,防止被識(shí)別為爬蟲(chóng)程序請(qǐng)求導(dǎo)致直接拒絕訪問(wèn)req = urllib.request.Request(url=url, headers={ ’User-Agent’: ’User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36’})# 發(fā)起請(qǐng)求html_resp = urllib.request.urlopen(req).read().decode('utf-8')

到這里我們可以順利獲取百度的搜索頁(yè)面html文檔

我門需要看一下熱搜排行榜的標(biāo)簽元素在哪里

Python爬蟲(chóng)新手入門之初學(xué)lxml庫(kù)

Python爬蟲(chóng)新手入門之初學(xué)lxml庫(kù)

找到第一條 右鍵復(fù)制 XPath (后邊說(shuō)XPath是什么)

Python爬蟲(chóng)新手入門之初學(xué)lxml庫(kù)

我們需要了解并使用XPath,XPath即為XML路徑語(yǔ)言(XML Path Language),它是一種用來(lái)確定XML文檔中某部分位置的語(yǔ)言。

復(fù)制的內(nèi)容結(jié)果是: //*[@id='con-ar']/div[2]/div/div/table/tbody[1]/tr[1]

這xPath字符串 表示現(xiàn)在在html定位的位置就是熱點(diǎn)新聞第一行內(nèi)容

5.XPath常用規(guī)則 表達(dá)式 描述 nodename 選取此節(jié)點(diǎn)的所有子節(jié)點(diǎn) / 從當(dāng)前節(jié)點(diǎn)選取直接子節(jié)點(diǎn) // 從當(dāng)前節(jié)點(diǎn)選取子孫節(jié)點(diǎn) . 選取當(dāng)前節(jié)點(diǎn) .. 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn) @ 選取屬性 * 通配符,選擇所有元素節(jié)點(diǎn)與元素名 @* 選取所有屬性 [@attrib] 選取具有給定屬性的所有元素 [@attrib=’value’] 選取給定屬性具有給定值的所有元素 [tag] 選取所有具有指定元素的直接子節(jié)點(diǎn) [tag=’text’] 選取所有具有指定元素并且文本內(nèi)容是text節(jié)點(diǎn) 6.繼續(xù)分析

那么我們要獲取所有的熱點(diǎn)新聞該怎么寫(xiě)呢

繼續(xù)看網(wǎng)頁(yè)

Python爬蟲(chóng)新手入門之初學(xué)lxml庫(kù)

可以看到所有的熱榜分別在三個(gè)<tbody>之下

修改一下剛才復(fù)制的XPath

//*[@id='con-ar']/div[2]/div/div/table/tbody[1]/tr[1] 改為 //*[@id='con-ar']/div[2]/div/div/table/tbody/tr

這樣X(jué)Path就會(huì)定位到這三個(gè)tbody下的所有tr元素內(nèi)容

我們繼續(xù)看一下tr是不是我們想要的內(nèi)容,展開(kāi)一個(gè)tr看看

Python爬蟲(chóng)新手入門之初學(xué)lxml庫(kù)

淦~還有一堆,,

這該怎么辦。我們需要拿到數(shù)據(jù)是 【標(biāo)題】 【訪問(wèn)鏈接】 【熱度】,現(xiàn)在手里已經(jīng)拿到的是所有的tr元素

緊接著從tr下手 直接 拿到下面所有<a>標(biāo)簽的標(biāo)題與超鏈接

標(biāo)題的XPath: */a/@title 超鏈接的XPath: */a/@href

*表示匹配tr下的所有元素 /a是在*找到第一個(gè)a標(biāo)簽 @是屬性選擇器 title和href就是要選擇的素屬性了

還剩下個(gè)熱度,let‘s me 繼續(xù)操作,直接選擇tr下的第二個(gè)td XPath: td[2]

分析完畢,把完整的代碼貼出來(lái)

import urllib.requestfrom lxml import etree # 獲取百度熱榜 url = 'https://www.baidu.com/s?ie=UTF-8&wd=1'# 我們?cè)谡?qǐng)求頭加入U(xiǎn)ser-Agent參數(shù),這樣可以讓服務(wù)端認(rèn)為此次請(qǐng)求是用戶通過(guò)瀏覽器發(fā)起的正常請(qǐng)求,防止被識(shí)別為爬蟲(chóng)程序請(qǐng)求導(dǎo)致直接拒絕訪問(wèn)req = urllib.request.Request(url=url, headers={ ’User-Agent’: ’User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36’ })html_resp = urllib.request.urlopen(req).read().decode('utf-8')html = etree.HTML(html_resp)#初始化生成一個(gè)XPath解析對(duì)象_list = html.xpath('//*[@id=’con-ar’]/div[2]/div/div/table/tbody/tr')print(f'article count : {len(_list)}') for tr in _list: title = tr.xpath('*/a/@title')[0] href = tr.xpath('*/a/@href')[0] hot = tr.xpath('string(td[2])').strip() print(f'{hot}t{title}thttps://www.baidu.com{href}')

點(diǎn)擊運(yùn)行,程序啪就跑起來(lái)了,很快啊,數(shù)據(jù)全都過(guò)來(lái)了,我全都接住了,我笑了一下。

到此就完成了lxml xpath的基本使用,更詳細(xì)的xpath教程請(qǐng)看 :https://www.w3school.com.cn/xpath/index.asp

爬蟲(chóng)三要素,抓取數(shù)據(jù)完成了,剩余的分析與存儲(chǔ)就先不說(shuō)了

總結(jié)

到此這篇關(guān)于Python爬蟲(chóng)新手入門之初學(xué)lxml庫(kù)的文章就介紹到這了,更多相關(guān)Python爬蟲(chóng)入門之lxml庫(kù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
一区二区三区精品久久久| 国产一区二区导航在线播放| 老司机免费视频一区二区| 亚洲综合社区| 亚洲四区在线观看| 亚洲网址在线| 欧美激情在线一区二区三区| 不卡欧美aaaaa| 欧美精品一区二区三区蜜桃| 成人午夜看片网址| 91精品一区二区三区在线观看| 蜜桃av一区二区| 欧美性一区二区| 另类中文字幕网| 亚洲免费在线| 午夜精品福利视频网站| 国产精品色网| 亚洲大片精品永久免费| 亚洲综合首页| 奇米色777欧美一区二区| 在线看国产一区二区| 免费成人在线网站| 欧美日韩国产综合草草| 国产在线观看免费一区| 91精品国产乱码久久蜜臀| 国产精品一区二区果冻传媒| 欧美日韩国产一级片| 国内精品久久久久影院薰衣草| 欧美日韩五月天| 国产精品资源站在线| 欧美一区二区三区播放老司机| 国产宾馆实践打屁股91| 26uuu欧美日本| 午夜视频一区| 综合久久久久综合| 亚洲国产日韩欧美| 一级日本不卡的影视| 久久黄色网页| 毛片不卡一区二区| 欧美久久免费观看| 成人精品小蝌蚪| www久久久久| 欧美三级特黄| 一区二区视频免费在线观看| 欧美一区=区| 毛片不卡一区二区| 欧美电影免费观看高清完整版在线观看 | 欧美久久一级| 国产欧美在线观看一区| 国语精品中文字幕| 中文字幕一区二区三区蜜月| 一区二区福利| 老司机精品视频在线| 精品国产露脸精彩对白| 亚洲国产专区| 日精品一区二区三区| 欧美日韩国产精品成人| 不卡av在线免费观看| |精品福利一区二区三区| 一区av在线播放| 欧美日韩精品高清| 91在线云播放| 亚洲综合色视频| 色素色在线综合| 成人爱爱电影网址| 樱花草国产18久久久久| 一本久久a久久精品亚洲| 国产精品91一区二区| 国产欧美一区二区精品性 | 精品精品欲导航| 亚洲天堂男人| 蜜桃视频一区二区三区在线观看| 欧美成人一区二区三区片免费 | 欧美大白屁股肥臀xxxxxx| 黄页网站一区| 青草av.久久免费一区| 久久综合999| 亚洲免费中文| 成人免费精品视频| 最新日韩av在线| 在线观看日韩电影| 91在线精品一区二区三区| 亚洲一区二区三区四区中文字幕| 69久久99精品久久久久婷婷| 影院欧美亚洲| 亚洲成人精品一区二区| 日韩欧美在线123| 一区二区激情| 成人午夜免费av| 亚洲高清不卡在线| 亚洲精品在线免费播放| 国产精品一区免费在线观看| 最新国产の精品合集bt伙计| 777午夜精品免费视频| 欧美大片专区| 三级亚洲高清视频| 久久精品日韩一区二区三区| 久久久久久久久久码影片| 色综合久久中文综合久久牛| 日韩成人伦理电影在线观看| 日本一区二区三区四区| 欧美在线观看视频一区二区| 国产专区一区| 国产伦精一区二区三区| 亚洲精品va在线观看| 日韩美女一区二区三区四区| 国产一区二区三区的电影 | 91捆绑美女网站| 日韩国产欧美视频| 国产精品嫩草久久久久| 在线播放中文一区| 国产精品嫩草99av在线| 99精品桃花视频在线观看| 免费高清成人在线| 亚洲欧美日韩一区二区三区在线观看| 7777精品伊人久久久大香线蕉超级流畅| 91久久黄色| av电影在线不卡| 久久成人综合网| 一区二区高清免费观看影视大全| 久久综合九色欧美综合狠狠| 日本韩国欧美国产| 精品动漫3d一区二区三区免费| 国产成人免费在线| 欧美aaaaaa午夜精品| 亚洲欧美日韩国产综合在线| www国产成人| 欧美日本在线播放| 美女国产精品| 亚洲国产综合在线看不卡| 97精品电影院| 国产精品资源在线| 热久久一区二区| 亚洲人成小说网站色在线 | 亚洲视频观看| 91亚洲永久精品| 99这里有精品| 视频一区欧美精品| 久久综合中文字幕| 欧美日韩精品欧美日韩精品| 国产精品亚洲综合久久| 欧美日韩亚洲一区| 成人动漫一区二区| 国模无码大尺度一区二区三区| 亚洲成人av一区二区| 亚洲免费伊人电影| 国产精品无遮挡| 久久久午夜精品理论片中文字幕| 正在播放亚洲一区| 免费久久99精品国产自在现线| 一区二区精品| 欧美+日本+国产+在线a∨观看| 国产成人午夜视频| 国产一区二区视频在线播放| 日本三级亚洲精品| 三级在线观看一区二区| 亚洲国产另类av| 亚洲精品一二三区| 国产精品国产三级国产aⅴ入口 | 久久精品欧美一区二区三区麻豆| 日韩三级高清在线| 欧美一区二区视频网站| 欧美日韩国产一区| 欧美色老头old∨ideo| 91久久线看在观草草青青 | 欧美午夜一区二区| 色爱区综合激月婷婷| 久久午夜电影| 久久午夜影视| 色妞www精品视频| 美女91精品| 老司机久久99久久精品播放免费| 国产日韩欧美一区在线| 国产日韩欧美一区二区三区在线观看| 一本一本久久| 亚洲一区日韩在线| 亚洲欧美日韩精品久久久 | 欧美三日本三级三级在线播放| 日本伦理一区二区| 精品污污网站免费看| 欧美男生操女生| 欧美一级高清片在线观看| 日韩精品一区二区三区四区视频| 欧美一区二区观看视频| 欧美一区二区三区在线观看视频| 欧美伦理影视网| 日韩亚洲欧美在线| 久久这里只有精品6| 国产欧美一区二区在线观看| 国产精品国产三级国产aⅴ无密码| 亚洲视频一二区| 亚洲一区二区三区爽爽爽爽爽| 五月天久久比比资源色| 偷拍日韩校园综合在线| 免费高清在线视频一区·| 国产资源精品在线观看| 成人高清视频在线观看| 欧美系列一区| 国产欧美91| 在线免费不卡电影|