靜覓爬蟲學習筆記8 爬取貓眼電影

2022-07-24 08:00:18 字數 1730 閱讀 8899

不知道是不是我學習太晚的原因,貓眼電影這**我用requests進行爬取原始碼直接返回給我乙個您的訪問被禁止。作為萌新的我登時就傻了,還好認真聽了之前的課,直接換selenium抓了原始碼,雖然效率慘不忍睹,但多少也能執行了,下面上**

import json

import requests

import re

from

requests.exceptions import requestexception

from

multiprocessing import pool

from

selenium import webdriver

def get_one_page(url): # 獲取網頁原始碼

browser =webdriver.chrome()

try:

browser.

get(url)

return

browser.page_source

finally

: browser.close()

def parse_one_page(html): # 利用正規表示式提取內容

pattern = re.compile('

.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">'

+'.*?>(.*?).*?star">(.*?)

.*?releasetime">(.*?)

' +'

.*?integer">(.*?).*?fraction">(.*?).*?

',re.s)

items =re.findall(pattern,html)

for item in

items:

yield

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()

def main(offset):

url="

" +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

) #多執行緒寫法,實測不是很好用,因為同時開啟多個網頁,抓取結果容易亂序

""" pool =pool()

pool.map(main,[i*10

for i in range(10

)])

"""

多執行緒那塊這寫法不太好用....

而且有的時候爬取的資料不足100個,會漏掉1到2個,而且每次漏掉的還是不同的資料,萌新求教這是為何

python爬蟲 爬取貓眼電影資料

定義乙個函式獲取貓眼電影的資料 import requests def main url url html requests.get url text print html if name main main 利用正則匹配,獲得我們想要的資訊 dd i class board index board...

python爬蟲基礎爬取貓眼電影

import requests from requests.exceptions import requestexception from sqlalchemy import create engine from lxml import etree import pandas as pd impor...

python爬蟲爬取貓眼電影Top100

很早就對爬蟲有所耳聞,於是乎就在網上買了一本python爬蟲的書,在學習的過程中也想做一些筆記與大家分享分享,勿噴 2.1.貓眼電影top100 2.2.f12開啟控制台,在response中找到需要的頁面資訊 如圖 2.3.發現每一部電影都是乙個dd標籤,我們需要爬取它的排名 位址 電影名稱 主演...