首頁  >  文章  >  後端開發  >  Python爬取豆瓣電影資料並且提取值xpath和lxml模組(程式碼)

Python爬取豆瓣電影資料並且提取值xpath和lxml模組(程式碼)

不言
不言轉載
2018-09-28 14:45:343815瀏覽

這篇文章帶給大家的內容是關於Python爬取豆瓣電影資料並且提取值xpath和lxml模組(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

工具:Python 3.6.5、PyCharm開發工具、Windows 10 作業系統、Google瀏覽器

目的:爬取豆瓣電影排行榜中電影的title、連結地址、圖片、評價人數、評分等

網址:https://movie.douban.com/chart

語法重點:

##xpath語法:

Google瀏覽器安裝xpath helper外掛:幫助我們從elements定位資料

1、選擇節點(標籤)

  (1)、/html/ head/meta:能夠選取html下的所有的meta標籤

  (2)、//li:目前頁面上的所有的li標籤

#  (3)、/html/head//link:head下的所有link標籤

2、//:能夠從任意節點開始選擇

  (1)、//li:目前頁面上的所有的li標籤

  (2)、/html/head//link:head下的所有的link標籤

3、@符號的用途

  (1)、選擇具體某個元素://p[ @class='feed']/ul/li,選擇class='feed'的p下的ul下的li

## (2)、a/@href:選擇a的href的值

4、取得文字

  ( 1)、/a/text():取得a下的文字

#  (2)、/a//text():取得a下的所有文字

範例

lxml語法:

1、安裝:pip install lxml

##2、使用

  from lxml import etree


##  element = etree.HTML("html字串")


  element.xpath("")

程式碼:

from lxml import etree
import requests

url = "https://movie.douban.com/chart"

headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"
}
response = requests.get(url,headers=headers)
html_str = response.content.decode()

#print(html_str)

html = etree.HTML(html_str)
print(html)

#1.获取所有的电影的URL地址
#url_list = html.xpath("//div[@class='indent']/div/table//div[@class='pl2']/a/@href")
#print(url_list)

#2.所有图片的地址
#img_list = html.xpath("//div[@class='indent']/div/table//a[@class='nbg']/img/@src")
#print(img_list)
ret1 = html.xpath("//div[@class='indent']/div/table")
print(ret1)
for table in ret1:
    item = {}
    item["title"] = table.xpath(".//div[@class='pl2']/a/text()")[0].replace("/","").strip()
    item["href"] = table.xpath(".//div[@class='pl2']/a/@href")[0]
    item["img"] = table.xpath(".//a[@class='nbg']/img/@src")[0]
    item["comment_num"] = table.xpath(".//span[@class='pl']/text()")[0]
    item["rating_num"] = table.xpath(".//span[@class='rating_nums']/text()")[0]
    print(item)

#運行效果:

#

以上是Python爬取豆瓣電影資料並且提取值xpath和lxml模組(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除