python(数据分析与可视化)二
python(數(shù)據(jù)分析與可視化)二
爬取網(wǎng)頁(yè)內(nèi)容的前期技術(shù)儲(chǔ)備
1.pip包管理
(1)內(nèi)置庫(kù)
包/庫(kù):別人寫(xiě)好的代碼,直接引用,加快開(kāi)發(fā)效率。
內(nèi)置包:python解釋器內(nèi)置常用功能庫(kù)。
– 解釋器安裝目錄/Lib文件夾下, os time urllib等
– 文件夾里有__init__.py 就成了一個(gè)包。
(2)關(guān)于HTTP模擬和HTML源代碼解析
python時(shí)代: urllib urllib2
由第三方程序員做了一個(gè)新http請(qǐng)求庫(kù),比官方更方便,urllib3
又有一個(gè)程序員,在urllib3基礎(chǔ)上進(jìn)一步封裝和優(yōu)化,requests
python3時(shí)代 內(nèi)置庫(kù)統(tǒng)一為urllib
結(jié)論:建議直接使用requests
(3)第三方庫(kù)
pypi.org 上豐富的各種功能的庫(kù)
①pip包管理工具
在服務(wù)器上沒(méi)有圖形界面的瀏覽器.開(kāi)發(fā)語(yǔ)言第三方庫(kù)往往用命令行包管理工具
解釋器/script/pip.exe
第三方庫(kù)安裝的位置: 解釋器目錄\lib\site-packages\
②換源
軟件源source: 清單里維護(hù)了上萬(wàn)的 某某軟件-> 某某url下載 庫(kù)下載地址關(guān)系,但官方pypi.org下載速度慢,國(guó)內(nèi)一些大學(xué)、大公司同步鏡像
方法一:臨時(shí)換源
‘pip install requests -i http://simply.aliyun.com/simply/’
方法二:永久換
系統(tǒng)用戶(hù)文件夾下新建.pip文件夾和pip.conf文件,寫(xiě)入配置
方式三(推薦):pycharm設(shè)置里面配settings/interpreter/+號(hào)/manage repositories/+號(hào) 復(fù)制源(推薦阿里云)
參考[pip換源](https://www.cnblogs.com/believepd/p/10499844.html)
豆瓣 https://pypi.doubanio.com/simple/
阿里云 https://mirrors.aliyun.com/pypi/simple/
清華大學(xué) https://pypi.tuna.tsinghua.edu.cn/simple/
2.requests基本用法
requests 是用Python語(yǔ)言編寫(xiě),基于 urllib,采用 Apache2 Licensed 開(kāi)源協(xié)議的 HTTP 庫(kù)。它比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿(mǎn)足 HTTP 測(cè)試需求。Requests 的哲學(xué)是以 PEP 20 的習(xí)語(yǔ)為中心開(kāi)發(fā)的,所以它比 urllib 更加 Pythoner。下面我以代碼的形式簡(jiǎn)單寫(xiě)其中常用的幾個(gè)知識(shí)點(diǎn):
import requestsbaidu_index_url = 'https://baidu.com' baidu_search_url = 'http://baidu.com/s'#仿造請(qǐng)求頭,基本反爬蟲(chóng)措施 headers = {#'cookies':'', #跟公共參數(shù)、用戶(hù)會(huì)話有關(guān)#'refer':'', #從哪個(gè)頁(yè)面來(lái)#瀏覽器標(biāo)識(shí),容易偽造,但肯定是機(jī)器人,容易被服務(wù)器識(shí)別出來(lái)'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36' }params = {'wd':'天氣','ie':'utf-8' }response = requests.get(url=baidu_search_url,params=params) #狀態(tài)碼 status_code = response.status_code if status_code == 200:#網(wǎng)頁(yè)數(shù)據(jù) bytescontent = response.content#網(wǎng)頁(yè)數(shù)據(jù)str 一般直接取得text屬性,但少數(shù)情況解碼錯(cuò)誤出現(xiàn)亂碼text = response.texttext = content.decode('utf-8') #只有百度需要()特殊print(text)url = response.urlheaders = response.headers3.debug模式
debug模式也就是調(diào)試運(yùn)行模式
具體操作過(guò)程可以分為三步:
1.打斷點(diǎn)
2.以debug運(yùn)行
3.F8向下執(zhí)行單步,觀察變量值
4.html解析—正則
①我們已經(jīng)用requests模擬請(qǐng)求,拿到網(wǎng)頁(yè)源代碼,str字符串,里面HTML模式
#需要分析
字符串自帶的find方法功能有限,如下:
因此有三種解析方法:
解析方式一:正則 regex,專(zhuān)門(mén)針對(duì)字符串處理的語(yǔ)法
(不推薦,了解即可)
5.html解析—bs庫(kù)(不推薦,了解即可)
#網(wǎng)頁(yè)HTML本身就是樹(shù)狀層狀結(jié)構(gòu),按照層次去找
#beautiful-soup庫(kù) 是python2時(shí)代的庫(kù),
#適合python3的是beautifulsoup4
#用’pip install beautifulsoup4‘來(lái)安裝第三方庫(kù)
6.html解析—xpath
#xpath表達(dá)式有自己的語(yǔ)法,但沒(méi)有正則那么復(fù)雜,類(lèi)似bs4庫(kù)按照html層級(jí)查找
#用’pip install lxml‘來(lái)進(jìn)行第三方庫(kù)的安裝
| 難度 | 難 | 中 | 簡(jiǎn)單 |
| 代碼量 | 少 | 少 | 多 |
| 可讀性 | 好 |
今天的分享就到這里,如果還想了解更多,可以看我主頁(yè)!
總結(jié)
以上是生活随笔為你收集整理的python(数据分析与可视化)二的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一加3t氢android8_一加氢OS推
- 下一篇: 迈德威视工业相机python二次开发,修