国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

用python3教你任意Html主內(nèi)容提取功能

2020-02-15 23:31:18
字體:
供稿:網(wǎng)友

本文將和大家分享一些從互聯(lián)網(wǎng)上爬取語料的經(jīng)驗。

0x1 工具準(zhǔn)備

工欲善其事必先利其器,爬取語料的根基便是基于python。

我們基于python3進(jìn)行開發(fā),主要使用以下幾個模塊:requests、lxml、json。

簡單介紹一個各模塊的功能

01|requests

requests是一個Python第三方庫,處理URL資源特別方便。它的官方文檔上寫著大大口號:HTTP for Humans(為人類使用HTTP而生)。相比python自帶的urllib使用體驗,筆者認(rèn)為requests的使用體驗比urllib高了一個數(shù)量級。

我們簡單的比較一下:

urllib:

 import urllib2 import urllib URL_GET = "https://api.douban.com/v2/event/list" #構(gòu)建請求參數(shù) params = urllib.urlencode({'loc':'108288','day_type':'weekend','type':'exhibition'}) #發(fā)送請求 response = urllib2.urlopen('?'.join([URL_GET,'%s'])%params)#Response Headersprint(response.info())#Response Codeprint(response.getcode())#Response Bodyprint(response.read())

requests:

import requests URL_GET = "https://api.douban.com/v2/event/list" #構(gòu)建請求參數(shù) params = {'loc':'108288','day_type':'weekend','type':'exhibition'} #發(fā)送請求 response = requests.get(URL_GET,params=params) #Response Headersprint(response.headers)#Response Codeprint(response.status_code)#Response Bodyprint(response.text)

我們可以發(fā)現(xiàn),這兩種庫還是有一些區(qū)別的:

1. 參數(shù)的構(gòu)建:urllib需要對參數(shù)進(jìn)行urlencode編碼處理,比較麻煩;requests無需額外編碼處理,十分簡潔。

2. 請求發(fā)送:urllib需要額外對url參數(shù)進(jìn)行構(gòu)造,變?yōu)榉弦蟮男问剑籸equests則簡明很多,直接get對應(yīng)鏈接與參數(shù)。

3. 連接方式:看一下返回數(shù)據(jù)的頭信息的“connection”,使用urllib庫時,"connection":"close",說明每次請求結(jié)束關(guān)掉socket通道,而使用requests庫使用了urllib3,多次請求重復(fù)使用一個socket,"connection":"keep-alive",說明多次請求使用一個連接,消耗更少的資源

4. 編碼方式:requests庫的編碼方式Accept-Encoding更全,在此不做舉例

綜上所訴,使用requests更為簡明、易懂,極大的方便我們開發(fā)。

02|lxml

BeautifulSoup是一個庫,而XPath是一種技術(shù),python中最常用的XPath庫是lxml。

當(dāng)我們拿到requests返回的頁面后,我們怎么拿到想要的數(shù)據(jù)呢?這個時候祭出lxml這強(qiáng)大的HTML/XML解析工具。python從不缺解析庫,那么我們?yōu)槭裁匆诒姸鄮炖镞x擇lxml呢?我們選擇另一款出名的HTML解析庫BeautifulSoup來進(jìn)行對比。

我們簡單的比較一下:

BeautifulSoup:

from bs4 import BeautifulSoup #導(dǎo)入庫# 假設(shè)html是需要被解析的html#將html傳入BeautifulSoup 的構(gòu)造方法,得到一個文檔的對象soup = BeautifulSoup(html,'html.parser',from_encoding='utf-8')#查找所有的h4標(biāo)簽 links = soup.find_all("h4")            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 来宾市| 象山县| 甘泉县| 青阳县| 延长县| 湘乡市| 大名县| 元江| 双柏县| 敖汉旗| 罗田县| 称多县| 玉山县| 枣阳市| 元阳县| 荆门市| 定远县| 瓦房店市| 海丰县| 毕节市| 宿迁市| 甘泉县| 桃源县| 钟山县| 九台市| 衡东县| 惠州市| 巴楚县| 松阳县| 常州市| 眉山市| 永和县| 九台市| 五华县| 土默特左旗| 张家港市| 枞阳县| 浦北县| 鄂尔多斯市| 南宁市| 永靖县|