requests lxml xpath爬取電影天堂

2022-06-23 07:21:13 字數 3541 閱讀 7999

1.匯入相應的包

import

requests

from lxml import etree

2.原始ur

我們要爬取的是最新電影,在該介面中,我們發現,具體的資訊儲存在每個名字的鏈結中,因此我們要獲取所有電影的鏈結才能得到電影的資訊。同時我們觀察url,發現

list_23_1,最後的1是頁面位於第幾頁。右鍵點選其中乙個電影的名字-檢查。

用於補全url

base_url="

"def

get_domain_urls(url):

response=requests.get(url=url,headers=headers)

text=response.text

html=etree.html(text)

#找到具有class="tbspan"的table下的所有a下面的href裡面的值

detail_urls=html.xpath("

//table[@class='tbspan']//a/@href")

#將url進行補全

detail_urls=map(lambda url:base_url+url,detail_urls)

return detail_urls

我們輸出第1頁中的所有url結果:

按下f12,發現這些資訊基本上都在div id="zoom"中,接下來我們就可以對該介面進行解析。

◎譯  名"):

v=parse_info(v,"

◎譯  名

").split("/"

)[0]

movie[

"name

"]=v

elif v.startswith("

◎產  地"):

v=parse_info(v,"

◎產  地")

movie[

"country

"]=v

elif v.startswith("

◎類  別"):

v=parse_info(v,"

◎類  別")

movie[

"category

"]=v

elif v.startswith("

◎豆瓣評分"):

v=parse_info(v,"

◎豆瓣評分

").split("/"

)[0]

movie[

"douban

"]=v

elif v.startswith("

◎導  演"):

v=parse_info(v,"

◎導  演")

movie[

"director

"]=v

elif v.startswith("

◎主  演"):

v=parse_info(v,"

◎主  演")

actors=[v]

for x in range(k+1,len(infos)):

actor=infos[x].strip()

if actor.startswith("◎"

):

break

movie[

"actors

"]=actors

elif v.startswith("

◎簡  介"):

profile=""

for x in range(k+1,len(infos)):

tmp=infos[x].strip()

if tmp.startswith(""):

break

else

: profile=profile+tmp

movie[

"profile

"]=profile

down_url=html.xpath("

//td[@bgcolor='#fdfddf']/a/@href")

movie[

"down_url

"]=down_url

return movie

最後將這兩個整合進乙個爬蟲中:

def

spider():

domain_url="

/html/gndy/dyzz/list_23_{}.html

"movies=

for i in range(1,2):

page=str(i)

url=domain_url.format(page)

detail_urls=get_domain_urls(url)

for detail_url in

detail_urls:

movie =parse_detail_page(detail_url)

print(movies)

執行爬蟲,得到以下結果(在json檢視器中進行格式化):

至此,乙個簡單的電影爬蟲就完成了。

爬取電影天堂

分析每頁的url,可以得到規律是 第t頁的url為 於是可以先分析第一頁,然後對頁數進迴圈,就可得到所有最新電影的詳細資訊。from lxml import etree headers defget movie url url resp requests.get url,headers header...

電影爬取案例

本次案例針對的是電影天堂上的電影,爬取所有電影的鏈結,以及每個鏈結對應的詳情頁。整體思路是 封裝兩個 函式,用來獲取url,對url進行解析。這個函式用來獲取每個頁面的url def get detail url url response requests.get url,headers heade...

爬取貓眼電影

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