不知道是不是我學習太晚的原因,貓眼電影這**我用requests進行爬取原始碼直接返回給我乙個您的訪問被禁止。作為萌新的我登時就傻了,還好認真聽了之前的課,直接換selenium抓了原始碼,雖然效率慘不忍睹,但多少也能執行了,下面上**
import jsonimport 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標籤,我們需要爬取它的排名 位址 電影名稱 主演...