本質就是
發起請求 --> 獲取響應內容 --> 解析內容 --> 儲存資料
首先,需要做的就是匯入模組pip install requests
pip install lxml
#-*- coding:utf-8 -*-
import requests
from lxml import etree
選取網頁並做解析
這裡以《titanic》作為案例:
要獲取我們需要的電影名,首先定位xml網頁中資訊,這裡就需要用到fire xpath外掛程式。
新增並安裝瀏覽器模組後,重啟瀏覽器生效。
在目標web頁面上查詢資訊的xpath
這裡電影標題的xpath為://*[@id=」content」]/h1/span[1]
這裡的xpath資訊要手動獲取,獲取方式如下:
1.如果你是用谷歌瀏覽器的話,滑鼠「右鍵」–>「檢查元素」
2. ctrl+shift+c將滑鼠定位到標題。
3.「右鍵」–> 「copy」–> 「copy xpath」就可以複製xpath
#_*_ coding:utf-8 _*_
import requests
import json
from lxml import etree
import time
url = ''
data = requests.get(url).text
s=etree.html(data)
film_name = s.xpath('//*[@id="content"]/h1/span[1]/text()')
print json.dumps(film_name, encoding="utf-8", ensure_ascii=false)
據此,我們繼續抓取導演、主演、評分;
#-*- coding:utf-8 -*-
import requests
from lxml import etree
import time
import json
url = ''
data = requests.get(url).text
s=etree.html(data)
film_name=s.xpath('//*[@id="content"]/h1/span[1]/text()') #電影名
director=s.xpath('//*[@id="info"]/span[1]/span[2]/a/text()') #導演
actor=s.xpath('//*[@id="info"]/span[3]/span[2]/a/text()') #主演
movie_time=s.xpath('//*[@id="info"]/span[13]/text()') #片長
ds =
for d in director:
#以列表的形式輸出演員
acs =
for a in actor:
print
'movie:' + json.dumps(film_name, encoding="utf-8", ensure_ascii=false)
print
'director:' + json.dumps(ds, encoding="utf-8", ensure_ascii=false)
print
'actors:' + json.dumps(acs, encoding="utf-8", ensure_ascii=false)
print
'file length:' + json.dumps(movie_time, encoding="utf-8", ensure_ascii=false)
顯示結果:movie:["鐵達尼號 titanic"]
director:["詹姆斯·卡梅隆"]
actors:["萊昂納多·迪卡普里奧", "凱特·溫絲萊特", "比利·贊恩", "凱西·貝茨", "弗蘭西絲·費舍", "格勞瑞亞·斯圖爾特", "比爾·帕克斯頓", "伯納德·希爾", "大衛·沃納", "維克多·加博", "喬納森·海德", "蘇茜·愛公尺斯", "劉易斯·阿伯內西", "尼古拉斯·卡斯柯恩", "阿那托利·薩加洛維奇", "丹尼·努齊", "傑森·貝瑞", "伊萬·斯圖爾特", "艾恩·格拉法德", "喬納森·菲利普斯", "馬克·林賽·查普曼", "理查德·格拉翰", "保羅·布賴特威爾", "艾瑞克·布里登", "夏洛特·查頓", "博納德·福克斯", "麥可·英塞恩", "法妮·布雷特", "馬丁·賈維斯", "羅莎琳·艾爾斯", "羅切爾·羅斯", "喬納森·伊萬斯-瓊斯", "西蒙·克雷恩", "愛德華德·弗萊徹", "斯科特·安德森", "馬丁·伊斯特", "克雷格·凱利", "格雷戈里·庫克", "利亞姆·圖伊", "詹姆斯·蘭開斯特", "艾爾莎·瑞雯", "盧·帕爾特", "泰瑞·佛瑞斯塔", "凱文·德·拉·諾伊"]
file length:["1997-12-19(美國)"]
遇到的問題:
輸出中文錯誤:
例如:
list =
print
list
>>>
解決方法:import json
list =
print json.dumps(list, encoding="utf-8", ensure_ascii=false)
>>>
python爬蟲 豆瓣電影
最近學習python 順便寫下爬蟲練手 爬的是豆瓣電影排行榜 python版本2.7.6 安裝 beautiful soup sudo apt get install python bs4 安裝 requests sudo apt get install python requests下面是py a...
網路爬蟲之豆瓣電影
python作為最易上手的程式語言之一,在很多領域的應用已經相對成熟,尤其是一些工具應用類的場景,比如本文要介紹的網路爬蟲。網路爬蟲目前比較成熟的方法有三種,在python中都有現有打包好的包 庫,直接呼叫,非常方便。本篇部落格只關注網路爬蟲的應用層面,重點放在如何解決實際問題,所以對三種方法的理論...
python爬蟲獲取豆瓣電影top250的名字
最近面試了乙個爬蟲實習崗位,不知道能不能過,先學習一下爬蟲練練手.import re import urllib.request import urllib.error defget douban pages index 1 電影排名 偽裝成瀏覽器 header for i in range 0 1...