/1 前言/
/2 專案目標/
取得貓眼電影的即將上映的電影詳情。
#/3 專案準備/
軟體:
PyCharm#需要的函式庫:requests、lxml、random、
time##########外掛程式:Xpath
網址如下:
https://maoyan.com/films?showType=2&offset={}
點擊下一頁的按鈕,觀察網站的變化分別如下:
https://maoyan.com/films?showType=2&offset=30 https://maoyan.com/films?showType=2&offset=60 https://maoyan.com/films?showType=2&offset=90
點擊下一頁時,頁面每增加一頁offset=()每次增加30,所以可以用{}代替變換的變量,再用for循環遍歷這網址,實現多個網址請求。
#/4 專案實作/#/4 專案實作/
import requests from lxml import etree import time import random class MaoyanSpider(object): def __init__(self): self.url = "https://maoyan.com/films?showType=2&offset={}" def main(self): pass if __name__ == '__main__': spider = MaoyanSpider() spider.main()
for i in range(1, 50): # ua.random,一定要写在这里,每次请求都会随机选择。 self.headers = { 'User-Agent': ua.random, }
def get_page(self, url): # random.choice一定要写在这里,每次请求都会随机选择 res = requests.get(url, headers=self.headers) res.encoding = 'utf-8' html = res.text self.parse_page(html)
1)基准xpath节点对象列表。
# 创建解析对象 parse_html = etree.HTML(html) # 基准xpath节点对象列表 dd_list = parse_html.xpath('//dl[@class="movie-list"]//dd')
for dd in dd_list: name = dd.xpath('.//div[@class="movie-hover-title"]//span[@class="name noscore"]/text()')[0].strip() star = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][3]/text()')[1].strip() type = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][2]/text()')[1].strip() dowld=dd.xpath('.//div[@class="movie-item-hover"]/a/@href')[0].strip() # print(movie_dict) movie = '''【即将上映】
movie = '''【即将上映】 电影名字: %s 主演:%s 类型:%s 详情链接:https://maoyan.com%s ========================================================= ''' % (name, star, type,dowld) print( movie)
time.sleep(random.randint(1, 3))
html = self.get_page(url) self.parse_page(html)
/5 效果展示/
#1、點選綠色小三角執行輸入起始頁,終止頁。
#2、執行程式後,結果顯示在控制台,如下圖所示。
#3、點擊藍色下載連結, 網路查看詳情。
/6 小結/
1、不建議抓取太多數據,容易對伺服器造成負載,淺嚐輒止即可。
2、本文基於Python網路爬蟲,利用爬蟲庫,實作爬取貓眼電影。
以上是用Python網路爬蟲來看看最近電影院有哪些上映的電影的詳細內容。更多資訊請關注PHP中文網其他相關文章!