用Requests+正則表達(dá)式爬取貓眼電影

一、介紹

最近在看崔慶才老師的視頻,崔大大確實不錯,思路和代碼書寫都很謹(jǐn)慎,我就再碼碼字吧,方便以后查閱或溫習(xí)

二、流程

  • 用瀏覽器打開貓眼電影,分析站點

  • 抓取單頁內(nèi)容
    利用Requests請求目標(biāo)站點,得到單個網(wǎng)頁HTML代碼,返回結(jié)果

  • 正則表達(dá)式分析
    根據(jù)HTML代碼分析得到的名稱、主演、上映時間、評分、圖片鏈接等信息

  • 保存至文件
    通過文件的形式將結(jié)果保存,每一部電影一個結(jié)果一行Json字符串

  • 開啟循環(huán)及多線程
    對多頁內(nèi)容遍歷,開啟多線程提高抓取速度

三、代碼

import requests
from requests.exceptions import RequestException
import re
import json

from multiprocessing import Pool  #多線程

def get_one_page(url):
    try:
        response=requests.get(url)
        if response.status_code==200:
            return response.text
        return None
    except RequestException: #弄一個錯誤的總類就好,子類太多這里不考慮
        return None

def parse_one_page(html):
    pattern=re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a'
                       +'.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'
                       +'.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>', re.S)  #這鬼東西要仔細(xì)
    items=re.findall(pattern,html)
    #print(items)
    for item in items:
        yield {
            'index':item[0],
            'image':item[1],
            'title':item[2],
            'actor':item[3].strip()[3:],
            'time':item[4].strip()[5:],
            'score':item[5]+item[6]
        }    #注意,字典是無序的,所以看到返回結(jié)果不要方

def write_to_file(content):
    with open('result.text','a',encoding='utf-8') as f:
        f.write(json.dumps(content,ensure_ascii=False)+'\n')
        f.close()

def main(offset):
    url='http://maoyan.com/board/4?offset='+str(offset)
    get_one_page(url)
    html=get_one_page(url)
    #parse_one_page(html)
    #print(html)
    for item in parse_one_page(html):
        print(item)
        write_to_file(item)

if __name__=='__main__':   
    #main()
    for i in range(10):
        main(i*10)
    '''pool=Pool()
    pool.map(main,[i*10 for i in range(10)])        多線程'''

四、最后得到的text文件

1502715300(1).png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,716評論 25 709
  • 一、介紹 爬取貓眼電影的翻版,練練手的同時也有新發(fā)現(xiàn) 二、流程 用瀏覽器打開糗事百科,分析站點 抓取單頁內(nèi)容利用R...
    1想得美閱讀 1,054評論 0 1
  • 集成 與現(xiàn)有App集成,以及高度適應(yīng)問題,官方文檔中都有說明,單拉一篇文章出來,主要是想記錄一下其中的問題點,給大...
    xuwening閱讀 4,530評論 0 1
  • 前期準(zhǔn)備: 首先,我們下載一個內(nèi)涵段子的APP,可以不用注冊,直接用微信、微博等相關(guān)社交軟件登錄,登錄上去之后就可...
    風(fēng)華颯沓閱讀 313評論 0 0
  • 丈夫這東西 文 / 馬孝光 丈夫這東西可比男友差多了。男友他是真心愛你,看你目不轉(zhuǎn)睛,眼里閃著愛情的火花,你一松懈...
    西江冷月閱讀 445評論 1 0

友情鏈接更多精彩內(nèi)容