python初級爬蟲之貓眼電影
**
逐步爬取貓眼電影排行資訊
**
一、抓取一頁,簡單地思路
import requests
import re
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)\
Chrome/71.0.3578.98 Safari/537.36'
}
r = requests.get('https://maoyan.com/board/4',headers=headers)
items = re.findall('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a'
+ '.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'
+ '.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>',r.text,re.S)
print(items)
先使用requests庫抓取頁面,再使用正規表示式提取頁面相關的資訊,最後輸出結果:
二、整理程式碼,使其更加簡潔和規範,便於分頁抓取。
import requests
import re
def get_page(url):
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)\
Chrome/71.0.3578.98 Safari/537.36'
}
response = requests.get(url,headers=headers)
return response.text
def parse_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)
items = re.findall(pattern,html)
return items
def main():
url = 'https://maoyan.com/board/4'
html = get_page(url)
results = parse_page(html)
print(results)
main()
上面代自定義函式來規範程式碼,內容基本不變,輸出結果仍為列表型。下面來整理一下輸出的結果:
import requests
import re
def get_page(url):
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)\
Chrome/71.0.3578.98 Safari/537.36'
}
response = requests.get(url,headers=headers)
return response.text
def parse_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)
items = re.findall(pattern,html)
return items
def main():
url = 'https://maoyan.com/board/4'
html = get_page(url)
for item in parse_page(html):
print(item[0],item[1],item[2],item[3].strip()[3:],item[4].strip()[5:],item[5] + item[6])
main()
三、終極整理,同時完成分頁抓取,共抓取前100名,完整程式碼如下:
import re
import requests
from requests.exceptions import RequestException
def get_one_page(url):
try:
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}
response = requests.get(url,headers=headers)
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)
items = re.findall(pattern, html)
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 main(offset):
url = 'https://maoyan.com/board/4?offset='+str(offset)
html = get_one_page(url)
for item in parse_one_page(html):
print(item)
if __name__ == '__main__':
for i in range(10):
main(offset=i*10)
小結:一步一步來做,先理解每一個步驟的原理,懂得相關知識點的使用,才可以學到東西。最後的程式碼中,使用了requests庫來抓取頁面、re庫來完成正規表示式。同時,在輸出結果端使用一個生成器來完成迭代,使得輸出結果為字典型。
相關文章
- Python爬蟲例項:爬取貓眼電影——破解字型反爬Python爬蟲
- 爬蟲如何爬取貓眼電影TOP榜資料爬蟲
- Python爬蟲入門實戰之貓眼電影資料抓取(理論篇)Python爬蟲
- Python爬蟲入門實戰之貓眼電影資料抓取(實戰篇)Python爬蟲
- Python網路爬蟲實踐案例:爬取貓眼電影Top100Python爬蟲
- python爬取貓眼正在熱映電影Python
- Python網路爬蟲(正則, 內涵段子,貓眼電影, 鏈家爬取)Python爬蟲
- python-爬蟲-css提取-寫入csv-爬取貓眼電影榜單Python爬蟲CSS
- Python爬蟲教程-11-proxy代理IP,隱藏地址(貓眼電影)Python爬蟲
- Python3爬取貓眼電影資訊Python
- python爬取貓眼電影top100儲存到CSVPython
- 【Python3網路爬蟲開發實戰】3.4-抓取貓眼電影排行Python爬蟲
- Python反爬:利用js逆向和woff檔案爬取貓眼電影評分資訊PythonJS
- vue仿貓眼電影webappVueWebAPP
- 【Python3網路爬蟲開發實戰】3-基本庫的使用-4抓取貓眼電影排行Python爬蟲
- Python爬蟲怎麼入門-初級篇Python爬蟲
- python3 網路爬蟲開發實戰 貓眼top100Python爬蟲
- Python電影爬蟲之身體每況愈下Python爬蟲
- Python爬蟲批次下載電影連結Python爬蟲
- Python《爬蟲初實踐》Python爬蟲
- Python爬蟲筆記(4):利用scrapy爬取豆瓣電影250Python爬蟲筆記
- Python爬蟲教程-17-ajax爬取例項(豆瓣電影)Python爬蟲
- python爬蟲 爬取豆瓣電影 1-10 ajax 資料Python爬蟲
- 擼個爬蟲,爬取電影種子爬蟲
- Python爬蟲之BeautifulSoupPython爬蟲
- Python Scrapy 爬蟲(二):scrapy 初試Python爬蟲
- nodejs爬蟲獲取漫威超級英雄電影海報NodeJS爬蟲
- 【python爬蟲案例】利用python爬取豆瓣電影TOP250評分排行資料!Python爬蟲
- 貓眼:吳京主演電影累計票房超150億
- 【Python爬蟲&資料分析】2018年電影,你看了幾部?Python爬蟲
- 【Python】從0開始寫爬蟲——轉身扒豆瓣電影Python爬蟲
- Python爬取電影天堂Python
- python爬蟲之JS逆向Python爬蟲JS
- Python爬蟲之Pyspider使用Python爬蟲IDE
- Python爬蟲之BeautifulSoup庫Python爬蟲
- 爬蟲初識爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 爬蟲01:爬取豆瓣電影TOP 250基本資訊爬蟲