1. 程式人生 > >【3月24日】Requests+正則表示式抓取貓眼電影Top100

【3月24日】Requests+正則表示式抓取貓眼電影Top100

本次實驗爬蟲任務工具較為簡單,主要是熟悉正則表示式的匹配:

pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">(.*?)</i>', re.S)

以上的正則表示式中,分別匹配:
電影的id(\d+),圖片的地址(……src=”(.?)”.

?name”>……),名稱(……<\a.?>(.?)……),演員資訊(……star”>(.?)<\/p>……),上映時間(……releasetime”>(.?)<……)以及評分(……integer”>(.?)<…….?fraction”>(.*?)<……,),之後再使用yield進行格式化:

`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] }`

得到上述的格式化資料之後,就可以寫入txt檔案進行持久化儲存了。整個程式碼如下:

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


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>.*?in' 'teger">(.*?)</i>.*?fraction">(.*?)</i>', re.S) 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] } def write_to_file(content): with open("result.txt", 'a', encoding='utf-8') as f: f.write(json.dumps(content, ensure_ascii=False)+'\n') f.close() # 以offset作為引數,實現分頁抓取資料 def main(offset): url = "http://maoyan.com/board/4?offset=" + str(offset) html = get_one_page(url) for item in parse_one_page(html): print(item) write_to_file(item) if __name__ == '__main__': for i in range(10): main(i*10)

最終效果如下圖:
這裡寫圖片描述

相關推薦

324Requests+表示式貓眼電影Top100

本次實驗爬蟲任務工具較為簡單,主要是熟悉正則表示式的匹配: pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>

PythonRequests+表示式貓眼電影TOP100

1.先獲取到一個頁面,狀態碼200是成功返回 def get_one_page(url): # 獲取一個頁面 try: response = requests.get(url) if response.status_cod

Python爬蟲之requests+表示式貓眼電影top100以及瓜子二手網二手車資訊(四)

{'index': '1', 'image': 'http://p1.meituan.net/movie/[email protected]_220h_1e_1c', 'title': '霸王別姬', 'actor': '張國榮,張豐毅,鞏俐', 'time': '1993-01-01', 'sc

Python爬蟲實戰之Requests+表示式貓眼電影Top100

import requests from requests.exceptions import RequestException import re import json # from multiprocessing import Pool # 測試了下 這裡需要自己新增頭部 否則得不到網頁 hea

Requests+表示式貓眼電影top100

#!/usr/bin/python #coding=utf-8 # import requests from requests.exceptions import RequestException import re import json from multiproces

python網路爬蟲例項:Requests+表示式貓眼電影TOP100

一、前言 最近在看崔慶才先生編寫的《Python3網路爬蟲開發實戰》這本書,學習了requests庫和正則表示式,爬取貓眼電影top100榜單是這本書的第一個例項,主要目的是要掌握requests庫和正則表示式在實際案例中的使用。 二、開發環境 執行平

Requests表示式貓眼電影(TOP100+最受期待榜)

目標站點分析 目標站點(貓眼榜單TOP100): 如下圖,貓眼電影的翻頁offset明顯在URL中,所以只要搞定第一頁的內容加上一個迴圈加上offset就可以爬取前100。 流程框架 1、抓取單頁內容 利用requests請求目標站點,得到單個網頁HTML程式碼,返回結

自學python爬蟲(四)Requests+表示式貓眼電影

前言 學了requests庫和正則表示式之後我們可以做個簡單的專案來練練手咯!先附上專案GitHub地址,歡迎star和fork,也可以pull request哦~ 地址:https://github.com/zhangyanwei233/Maoyan100.git 正文開始哈哈哈

requests表示式貓眼電影

目標 通過Request+正則表示式爬取貓眼電影TOP100電影的排名、名字、電影封面圖片、主演、上映時間、貓眼評分,將爬取的內容寫入檔案中。 流程框架 進入到貓眼電影TOP100的頁面,此時的URL為http://maoyan.com/board/4,點選第2頁,會發現此時的URL為http://ma

14-Requests+表示式貓眼電影

'''Requests+正則表示式爬取貓眼電影TOP100''''''流程框架:抓去單頁內容:利用requests請求目標站點,得到單個網頁HTML程式碼,返回結果。正則表示式分析:根據HTML程式碼分析得到電影的名稱、主演、上映時間、評分、圖片連結等資訊。儲存至檔案:通過檔案的形式儲存結果,每一部電影一個結

Requests+表示式貓眼TOP100電影

需要著重學習的地方:(1)爬取分頁資料時,url連結的構建(2)儲存json格式資料到檔案,中文顯示問題(3)執行緒池的使用(4)正則表示式的寫法 import requests from requests.exceptions import RequestException import re im

Python爬蟲-利用表示式貓眼電影

利用正則來爬去貓眼電影 =================================== ===================================================== 1 ''' 2 利用正則來爬去貓眼電影 3 1. url: http://maoya

36原始碼閱讀日記(1):HashMap

前言 首先,致敬下幾位authors @author Doug Lea @author Josh Bloch @author Arthur van Hoff @author Neal Gafter HashMap是Java程式設計師使用頻率最高

requests+表示式豆瓣讀書top250

簡單的python練手專案,通過rquests庫請求得到豆瓣top250網頁原始碼,並通過正則表示式匹配得到對應資訊-書名,作者資訊,評分以及簡介。 網站的URL為’https://book.douban.com/top250?start=0’,但我們拉到底部發現250本讀書的資訊被分成了1

Python爬蟲之使用表示式資料

目錄 匹配標籤 匹配title標籤 a標籤 table標籤 匹配標籤裡面的屬性 匹配a標籤裡面的URL 匹配img標籤裡的 src 相關文章:Linux中的正則表示式             &nbs

利用表示式網頁上郵箱的小程式

使用方法:把自己在網上儲存下來含有郵箱的網頁所在硬碟的路徑,拷到對應位置即可,此程式用eclipse-luna-64位測試已通過 程式最終來源為馬上兵老師釋出的視訊及原始碼,本人是用來學習,並和大家分享 視訊連結:http://pan.baidu.com/s/1jIE5qC

表示式頁面內所有的超連結

因為最近要做一個類似專業搜尋引擎的東西,需要抓取網頁的所有超連結。 大家幫忙測試一下子,下面的程式碼是否可以針對所有的標準超連結。 //如果要轉載本文請註明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不註明出處的人 Seven{See7di#Gmail.com}測試程式碼如下: <?ph

使用表示式網易雲課堂中的資料

 要抓取資料的頁面如下: 程式碼: package com.url; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.

php curl 表示式 微博使用者資訊練習

兩個月前學習php curl時做的練習,今天週末整理了一下。 程式封裝了四個類,主要使用了curl來抓取微博使用者的個人資訊頁面以及關注的使用者頁面,然後通過分析頁面結構使用正則表示式以及php的字串函式擷取所需的資訊。 Curl類:用於進行資料庫操作;

C# 表示式網頁上某個標籤的內容,並替換連結地址和圖片地址

     #region 獲取第三方網站內容       //獲取其他網站網頁內容的關鍵程式碼       WebRequest request = WebRequest.Create(第三方的網站地址);       WebResponse response = requ