Python爬取貓眼電影

2021-09-01 05:28:54 字數 2402 閱讀 9917

不多說,直接上**:

import requests

import re

import random

import pymysql

import time

# ------連線資料庫

db = pymysql.connect(host='localhost', port=3306,

user='root', passwd='a', db='python', charset='utf8')

cursor=db.cursor()

sql="insert into maoyan( fname,fpic,fscore ) values( %s,%s,%s )"

#proxies= #使用**包裝一下自己

#瀏覽器頭,同樣的包裝一下自己

headers=

files= #用來儲存爬到的電影

timetotal=0 #總耗時

#print(headers)

for type in range(67):

#迴圈拼接位址

r=requests.get(''.format(type=type*30),proxies=proxies,headers=headers,verify=false)

#定義乙個正規表示式獲取需要的資料

filemsgpattern=re.compile( 'movie-poster.*?.*?"(.*?)".*?movie-item.*?/films/.*?>(.*?).*?orange">(.*?)

',re.s )

filemsg=re.findall(filemsgpattern,r.text)

print( "第 ",type,"頁...,該頁有電影:",len(filemsg) )

#得到的filemsg中對應的資料分別為:,名字以及評分

for msg in filemsg:

fpic=msg[0]

fname=msg[1]

#這裡判斷是否有評分

#由於電影中有些評分項是寫的無評分的,如果其長度為4則說明該電影是無評分

if len(msg[2])!=4: #如果電影無評分,繼續爬取得到該電影的評分

a=re.compile('>(.*?).*?>(.*?)

s=re.findall(a,msg[2])

for x,y in s:

fscore=x+y #x為小數點左邊的數,y為小數點右邊的數

else:

fscore=msg[2]

file=[fname,fpic,fscore]

print(file)

#這裡是每爬取到一百個電影做一次批量插入資料庫,特點:快!減少資料庫壓力

if( len(files)%100==0 and len(files)!=0 ):

print('已爬電影:***************=',len(files))

try:

cursor.executemany(sql,files[-100:]) #批量插入:每爬取一百個電影資訊再存入資料庫

time.sleep(random.randint(1,2))

db.commit()

files.clear() #資料加入資料庫之後清空files

except:

db.rollback()

#如持續爬取乙個網頁大量數量會被封ip的呢

times=random.randint(5, 10) #程式掛起一段時間,克制一下反爬蟲機制

timetotal+=times

print("第",type,"頁結束,請等待:",times,"秒...")

time.sleep(times)

print("爬取完成,共費時:",timetotal)

print( len(files) )

if len(files):

cursor.executemany(sql,files[:len(files)]) #怕最後沒有一百個電影時沒執行插入

time.sleep(random.randint(1,2))

db.commit()

cursor.close()

db.close()

下面是開始爬取到爬取完的截圖

如果執行上面**報錯,可能是那個**ip用不了了,在西刺**或者快**上重新找乙個可用的就行了。我部落格裡面有一篇是關於爬取快**的文章

謝謝您的閱讀!

爬取貓眼電影

有乙份工作需要我列出兩個電影院的每天電影排期資訊,我不想每次都要去貓眼上覆制貼上。所以做了個爬蟲 功能 能夠知道每天的電影排期資訊 使用限制 只能在當天使用,不能在前一晚上使用,後面我會再考慮修改 coding utf 8 import requests import re from bs4 imp...

python爬取貓眼電影排行

完整的 如下在這裡 閒著沒事,把解析html中的正則方法改用了xpath與beautifulsoup,只能說各有各的優點吧。正則的話,提取資訊可以連貫,一次性提取出所有需要的資訊,當然前提是你的正則式子沒有寫錯,所以說正則寫起來相比xpath與beautifulsoup來說要複雜一下,提取出錯後,除...

貓眼電影影評爬取

電影的影評介面如下 這個可以在網上搜到,也可以自己抓包分析 這裡簡單的分析一下引數的含義 1218029 貓眼電影的id 這裡就是 少年的你 的電影id了 offset 偏移,貌似是依次增加15 我們可以每次增加offset來進行爬取,即讓offset每次增加15。我們通過這種方式來構造url,傳送...