最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬蟲運(yùn)用正則表達(dá)式的方法和優(yōu)缺點(diǎn)

 更新時(shí)間:2019年08月25日 10:22:08   作者:Charzueus  
這篇文章主要給大家介紹了關(guān)于Python爬蟲運(yùn)用正則表達(dá)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

我看到最近幾部電影很火,查了一下貓眼電影上的數(shù)據(jù),發(fā)現(xiàn)還有個(gè)榜單,里面有各種經(jīng)典和熱映電影的排行榜,然后我覺得電影封面圖還挺好看的,想著一張一張下載真是費(fèi)時(shí)費(fèi)力,于是突發(fā)奇想,好像可以用一下最近學(xué)的東西實(shí)現(xiàn)我的需求,學(xué)習(xí)了正則表達(dá)式之后,想著要感受一下它在爬蟲里面的效果和優(yōu)缺點(diǎn)。

目標(biāo):爬取Top100榜單上電影的封面圖

Top100榜單規(guī)則:將貓眼電影庫中的經(jīng)典影片,按照評(píng)分和評(píng)分人數(shù)從高到低綜合排序取前100名,每天上午10點(diǎn)更新。相關(guān)數(shù)據(jù)來源于“貓眼電影庫”。

下面是我做的步驟:

(1)查看頁面元素,找到包含圖片的路徑的代碼段落

(2)分析圖片在web上面的唯一屬性,便于之后獲取正確圖片位置信息

(3)因?yàn)樾枰摚^察多個(gè)頁面的URL變化

(4)綜合以上幾個(gè)點(diǎn),編寫合適的正則表達(dá)式

 1、python 標(biāo)準(zhǔn)庫中re模塊提供了正則表達(dá)式的全部功能,直接引入;requests模塊是http庫,爬蟲常用庫,而urllib.requests 則是最后用到寫入文件的函數(shù)

import re
import requests
import urllib.request

2、先接收URL地址的HTML頁面,然后轉(zhuǎn)化為str形式(正則表達(dá)式是匹配字符串),第一個(gè)pattern1縮小范圍,抓取目標(biāo)部分,result1接收匹配的結(jié)果,這時(shí)候所有封面圖地址就在里面了

response = requests.get(url)
response = str(response.content)
patttern1 = '<dl class="board-wrapper">.+?<div class="pager-main">'
result1 = re.compile(pat).findall(response)

3、第二個(gè)正則,匹配圖片的地址信息

pat2 = '<img data-src="https://(.+?\.jpg)'
photos = re.compile(pat1).findall(re1[0])

這時(shí)候爬取到100張圖的信息,如下圖:

 4、繼續(xù)下一步,把每張圖片命名好,需要正確的圖片地址,避免重復(fù) 

x = 1
for imgurl in name:
 imgname = 'D:/Top 100/'+str(i/10)+str(x)+'.jpg'
 imgurl = 'https://'+imgurl
 urllib.request.urlretrieve(imgurl,filename=imgname)
 x += 1

 5、最后一步了,因?yàn)樾枰撆廊。约恿艘粋€(gè)循環(huán),10頁內(nèi)容爬取下來

for i in range(0, 100, 10):
  url = 'http://maoyan.com/board/4?offset='+str(i)
  get_one_page(url, i)
  #定義函數(shù),多次調(diào)用

相對(duì)來說,這是一個(gè)很簡單的應(yīng)用,也是自己學(xué)習(xí)之后的實(shí)踐,在這個(gè)例子中,我是用到正則表達(dá)式來實(shí)現(xiàn)的,還有其他方法,而且可能簡單,比如BeautifulSoup,XPath等方法,用在更加復(fù)雜的爬蟲項(xiàng)目里面,需要的知識(shí)更多,方法更嚴(yán)謹(jǐn),還需學(xué)習(xí)學(xué)習(xí)!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • python pytest進(jìn)階之fixture詳解

    python pytest進(jìn)階之fixture詳解

    這篇文章主要介紹了python pytest進(jìn)階之fixture詳解,學(xué)pytest就不得不說fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一樣,如果不學(xué)fixture那么使用pytest和使用unittest是沒什么區(qū)別的,需要的朋友可以參考下
    2019-06-06
  • 自定義PyCharm快捷鍵的設(shè)置方式

    自定義PyCharm快捷鍵的設(shè)置方式

    這篇文章主要介紹了自定義PyCharm快捷鍵的設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python基于lxml模塊解析html獲取頁面內(nèi)所有葉子節(jié)點(diǎn)xpath路徑功能示例

    Python基于lxml模塊解析html獲取頁面內(nèi)所有葉子節(jié)點(diǎn)xpath路徑功能示例

    這篇文章主要介紹了Python基于lxml模塊解析html獲取頁面內(nèi)所有葉子節(jié)點(diǎn)xpath路徑功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python使用lxml模塊進(jìn)行xml節(jié)點(diǎn)數(shù)據(jù)解析的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • 通過python封裝SQLite3的示例代碼

    通過python封裝SQLite3的示例代碼

    這篇文章主要介紹了使用 Python 封裝 SQLite3 的相關(guān)內(nèi)容,包括創(chuàng)建數(shù)據(jù)庫實(shí)例、創(chuàng)建表、各種插入(單個(gè)、批量、字典等)、刪除(按條件、按 ID 等)、修改(多種方式)、查詢(單條、多條、分頁等)的示例及對(duì)應(yīng)的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2024-11-11
  • Python實(shí)現(xiàn)滑塊驗(yàn)證碼詳解

    Python實(shí)現(xiàn)滑塊驗(yàn)證碼詳解

    驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動(dòng)化的場景中。傳統(tǒng)的字符型驗(yàn)證安全性已經(jīng)名存實(shí)亡的情況下,各種新型的驗(yàn)證碼如雨后春筍般涌現(xiàn),今天給大家分享一篇Python實(shí)現(xiàn)滑塊驗(yàn)證碼
    2022-05-05
  • python檢測主機(jī)的連通性并記錄到文件的實(shí)例

    python檢測主機(jī)的連通性并記錄到文件的實(shí)例

    今天小編就為大家分享一篇python檢測主機(jī)的連通性并記錄到文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 使用Python爬蟲庫BeautifulSoup遍歷文檔樹并對(duì)標(biāo)簽進(jìn)行操作詳解

    使用Python爬蟲庫BeautifulSoup遍歷文檔樹并對(duì)標(biāo)簽進(jìn)行操作詳解

    今天為大家介紹下Python爬蟲庫BeautifulSoup遍歷文檔樹并對(duì)標(biāo)簽進(jìn)行操作的詳細(xì)方法與函數(shù)
    2020-01-01
  • 教你用python將數(shù)據(jù)寫入Excel文件中

    教你用python將數(shù)據(jù)寫入Excel文件中

    Python作為一種腳本語言相較于shell具有更強(qiáng)大的文件處理能力,下面這篇文章主要給大家介紹了關(guān)于如何用python將數(shù)據(jù)寫入Excel文件中的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • python 實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)到txt和pdf文檔及亂碼問題的解決

    python 實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)到txt和pdf文檔及亂碼問題的解決

    這篇文章主要介紹了python 實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)到txt和pdf文檔及亂碼問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python實(shí)現(xiàn)京東秒殺功能代碼

    Python實(shí)現(xiàn)京東秒殺功能代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)京東秒殺功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

北安市| 黄山市| 泾源县| 无极县| 乐平市| 津南区| 黎川县| 翼城县| 高要市| 大同县| 邹城市| 九江市| 陆良县| 潍坊市| 金沙县| 肥乡县| 海阳市| 大足县| 河间市| 镇宁| 漳州市| 汉阴县| 新竹县| 房山区| 宁安市| 偏关县| 达尔| 鹿泉市| 泽州县| 蓝田县| 聂拉木县| 江源县| 望都县| 隆安县| 东台市| 翼城县| 烟台市| 久治县| 遂平县| 博客| 乌拉特中旗|