真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

用Python如何提取貓眼電影-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司是一家專業(yè)提供青山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為青山眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

小編給大家分享一下用Python如何提取貓眼電影,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

XPath數(shù)據(jù)提取

XML介紹

XML稱為可擴展標記語言,XML是互聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)闹匾ぞ?,它可以跨越互?lián)網(wǎng)任何的平臺,不受編程語言和操作系統(tǒng)的限制,可以說它是一個擁有互聯(lián)網(wǎng)最高級別通行證的數(shù)據(jù)攜帶者。非常類似HTML。

HTML 和 XML的區(qū)別在于HTML主要用來顯示數(shù)據(jù),XML是用來傳輸數(shù)據(jù)。

XML都是標簽閉合的。例如: … 成對出現(xiàn)。



  
    冰與火之歌
    喬治 馬丁
    2005
    365.00
  
  
    哈利波特與死亡圣器
    J K. 羅琳
    2005
    48.98
  
  
    Python編程-從入門到放棄
    挖掘機小王子
    2048
    99.00
  
  
    Python編程-從看懂到看開
    尼古拉斯-趙四
    2003
    39.95
  

在上面的xml語法中存在父子,先輩等關(guān)系。

XPath介紹

XPath (XML Path Language) 是一門在 XML 文檔中查找信息的語言,可用來在 XML/HTML 文檔中對元素和屬性進行遍歷,并提取相應(yīng)元素。

也是一種數(shù)據(jù)提取方式,只不過針對的是HTML/XML數(shù)據(jù),因為爬蟲主要和HTML頁面打交道。

XPath匹配規(guī)則

下表是XPath常用的規(guī)則:

用Python如何提取貓眼電影

lxml庫

lxml 是一個Python第三方模塊。主要的功能是如何解析和提取 HTML/XML 數(shù)據(jù)。

lxml和正則類似,是一款高性能的 Python HTML/XML 解析器,我們可以利用之前學(xué)習(xí)的XPath語法,來快速的定位特定元素以及節(jié)點信息。

安裝:

pip install lxml

在線安裝不成功就采用離線安裝。

再安裝 parsel 時會自動安裝 lxml,這里就不需要再次安裝了。

使用lxml模塊

初始化生成一個XPath解析對象,同時可以自動補全殘缺的HTML標簽。傳入網(wǎng)頁源碼。

from lxml import etree
string = """
  
    Python編程-從看懂到看開
    Python編程
    2003
    39.95
  
"""
# 再解析之前必須先轉(zhuǎn)化一下
html = etree.HTML(string)
# 返回結(jié)果是列表
result = html.xpath("http://book[contains(@cover,'paper')]/title/text()")
result = html.xpath("http://book[4]/title/text()")
print(result)

因為 parsel 對 lxml 進行了, 所以可以直接再 parsel 中無縫切換使用 xpath 。

使用XPath選取指定內(nèi)容。括號里面書寫XPath語法規(guī)則。返回列表。

# -*- coding: utf-8 -*-
import requests
import parsel
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
}
response = requests.get('https://maoyan.com/board/4?offset=0', headers=headers)
html = response.text
# %% 選擇任意節(jié)點
sel = parsel.Selector(html)
# 提取 p 標簽
ps = sel.xpath('//p')
for p in ps:
    print(p.get())

案例:XPath提取貓眼電影

貓眼電影:
https://maoyan.com/board/4?offset=20
    函數(shù)式:
        1. 獲取(請求)一頁的函數(shù)
        2. 定義解析函數(shù)(解析一頁)
        3. 寫入文件函數(shù)
        4. 循環(huán)函數(shù)
'''
import json
import requests
from lxml import etree
# 獲取響應(yīng)
def getOnePage(url):
    '''獲取一頁的響應(yīng)的函數(shù)'''
    response = requests.get(url)
    return response.text
# 解析響應(yīng) --> 結(jié)果
def parseOnePage(text):
    # 初始化解析
    html = etree.HTML(text)
    # 里面有所有的數(shù)據(jù) 先選擇上一層  這一層里面包含所有數(shù)據(jù) 然后循環(huán)遍歷
    data = html.xpath('//dl[@class="board-wrapper"]')
    # 遍歷提取所有的元素
    for dat in data:
        print(dat)
        # 繼續(xù)選取
        # 標題
        title = dat.xpath('.//div//a/text()')
        # 主演
        star = dat.xpath('.//p[@class="star"]/text()')
        # 時間
        releasetime = dat.xpath('//p[@class="releasetime"]/text()')
        for tit, sta, rel in zip(title, star, releasetime):
            # 在函數(shù)里面遇到return就終止
            # 生成器
            yield {
                '電影名字': tit,
                '主演': sta.strip(),
                '上映時間': rel
            }
def save2File(data):
    # with open('maoyan66.txt', 'a', encoding='utf-8') as fp:
    #     fp.write(data+'\n')
    with open('maoyan66.txt', 'a', encoding='utf-8') as fp:
        fp.write(json.dumps(data, ensure_ascii=False)+'\n')
if __name__ == "__main__":
    for page in range(10):
        # 一頁網(wǎng)址
        url = f'https://maoyan.com/board/4?offset={page*10}'
        # 調(diào)用
        r = getOnePage(url)
        # 解析數(shù)據(jù) 返回生成器
        result = parseOnePage(r)
        for res in result:
            # with open('maoyan.txt','a',encoding='utf-8') as fp:
            #     # 打印到文件
            #     print(str(res), file=fp)
            save2File(str(res))

看完了這篇文章,相信你對用Python如何提取貓眼電影有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!


文章標題:用Python如何提取貓眼電影-創(chuàng)新互聯(lián)
文章鏈接:http://weahome.cn/article/doiees.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部