中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

做python數據爬蟲怎么爬取數據

發布時間:2020-10-28 09:38:42 來源:億速云 閱讀:258 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關做python數據爬蟲怎么爬取數據,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

爬蟲簡介:

爬蟲就是自動獲取網頁內容的程序,例如搜索引擎,Google,Baidu 等,每天都運行著龐大的爬蟲系統,從全世界的網站中爬蟲數據,供用戶檢索時使用。

爬蟲流程:

1、模擬請求網頁。模擬瀏覽器,打開目標網站。

2、獲取數據。打開網站之后,就可以自動化的獲取我們所需要的網站數據。

3、保存數據。拿到數據之后,需要持久化到本地文件或者數據庫等存儲設備中。

數據爬蟲——Requests 使用

Requests 庫是 Python 中發起 HTTP 請求的庫,使用非常方便簡單。

模擬發送 HTTP 請求

發送 GET 請求(當我們用瀏覽器打開豆瓣首頁時,其實發送的最原始的請求就是 GET 請求)

import requests
res = requests.get('http://www.douban.com')
print(res)
print(type(res))
>>>
<Response [200]>
<class 'requests.models.Response'>

可以看到,我們得到的是一個 Response 對象。

如果我們要獲取網站返回的數據,可以使用 text 或者 content 屬性來獲取

text:是以字符串的形式返回數據

content:是以二進制的方式返回數據

print(type(res.text))
print(res.text)
>>>
<class 'str'> <!DOCTYPE HTML>
<html class="">
<head>
<meta charset="UTF-8">
<meta name="google-site-verification" content="ok0wCgT20tBBgo9_zat2iAcimtN4Ftf5ccsh092Xeyw" />
<meta name="description" content="提供圖書、電影、音樂唱片的推薦、評論和價格比較,以及城市獨特的文化生活。">
<meta name="keywords" content="豆瓣,廣播,登陸豆瓣">.....
發送 POST 請求(對于 POST 請求,一般就是提交一個表單)
r = requests.post('http://www.xxxx.com', data={"key": "value"})

header 增強

對于有些網站,會拒絕掉沒有攜帶 header 的請求的,所以需要做一些 header 增強。比如:UA,Cookie,host 等等信息。

header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
         "Cookie": "your cookie"}
res = requests.get('http://www.xxx.com', headers=header)

解析 HTML

現在我們已經獲取到了網頁返回的數據,即 HTML 代碼,下面就需要解析 HTML,來提取其中有效的信息。BeautifulSoup 是 Python 的一個庫,最主要的功能是從網頁解析數據。

from bs4 import BeautifulSoup  # 導入 BeautifulSoup 的方法
# 可以傳入一段字符串,或者傳入一個文件句柄。一般都會先用 requests 庫獲取網頁內容,然后使用 soup 解析。
soup = BeautifulSoup(html_doc,'html.parser')  # 這里一定要指定解析器,可以使用默認的 html,也可以使用 lxml。
print(soup.prettify())  # 按照標準的縮進格式輸出獲取的 soup 內容。

XPath 定位

XPath 是 XML 的路徑語言,是通過元素和屬性進行導航定位的。幾種常用的表達式

表達式含義node選擇 node 節點的所有子節點/從根節點選取//選取所有當前節點.當前節點..父節點@屬性選取text()當前路徑下的文本內容,一些簡單的例子:

xpath('node')  # 選取 node 節點的所有子節點
xpath('/div')  # 從根節點上選取 div 元素
xpath('//div')  # 選取所有 div 元素
xpath('./div')  # 選取當前節點下的 div 元素
xpath('//@id')  # 選取所有 id 屬性的節點

關于做python數據爬蟲怎么爬取數據就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

唐山市| 南丹县| 嘉定区| 湄潭县| 大邑县| 上思县| 中阳县| 甘肃省| 囊谦县| 张家港市| 东乡族自治县| 汽车| 郁南县| 曲周县| 年辖:市辖区| 开平市| 武定县| 宜宾县| 武功县| 澳门| 霞浦县| 楚雄市| 古浪县| 泽普县| 定襄县| 霍林郭勒市| 涡阳县| 萍乡市| 宜丰县| 万年县| 滦平县| 水富县| 德阳市| 宿松县| 庄浪县| 宁乡县| 库伦旗| 永川市| 辉南县| 双柏县| 鞍山市|