久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

一文看懂Python爬蟲

本篇文章給大家?guī)砹岁P于Python的相關知識,其中主要介紹了關于爬蟲的相關知識,爬蟲簡單的來說就是用程序獲取網(wǎng)絡上數(shù)據(jù)這個過程的一種名稱,下面一起來看一下,希望對大家有幫助。

一文看懂Python爬蟲

爬蟲是什么

爬蟲簡單的來說就是用程序獲取網(wǎng)絡上數(shù)據(jù)這個過程的一種名稱。

爬蟲的原理

如果要獲取網(wǎng)絡上數(shù)據(jù),我們要給爬蟲一個網(wǎng)址(程序中通常叫URL),爬蟲發(fā)送一個HTTP請求給目標網(wǎng)頁的服務器,服務器返回數(shù)據(jù)給客戶端(也就是我們的爬蟲),爬蟲再進行數(shù)據(jù)解析、保存等一系列操作。

流程

爬蟲可以節(jié)省我們的時間,比如我要獲取豆瓣電影 Top250 榜單,如果不用爬蟲,我們要先在瀏覽器上輸入豆瓣電影的 URL ,客戶端(瀏覽器)通過解析查到豆瓣電影網(wǎng)頁的服務器的 IP 地址,然后與它建立連接,瀏覽器再創(chuàng)造一個 HTTP 請求發(fā)送給豆瓣電影的服務器,服務器收到請求之后,把 Top250 榜單從數(shù)據(jù)庫中提出,封裝成一個 HTTP 響應,然后將響應結果返回給瀏覽器,瀏覽器顯示響應內(nèi)容,我們看到數(shù)據(jù)。我們的爬蟲也是根據(jù)這個流程,只不過改成了代碼形式。

一文看懂Python爬蟲

HTTP請求

HTTP 請求由請求行、請求頭、空行、請求體組成。

一文看懂Python爬蟲

請求行由三部分組成:

1.請求方法,常見的請求方法有 GET、POST、PUT、DELETE、HEAD
2.客戶端要獲取的資源路徑
3.是客戶端使用的 HTTP 協(xié)議版本號
請求頭是客戶端向服務器發(fā)送請求的補充說明,比如說明訪問者身份,這個下面會講到。

請求體是客戶端向服務器提交的數(shù)據(jù),比如用戶登錄時需要提高的賬號密碼信息。請求頭與請求體之間用空行隔開。請求體并不是所有的請求都有的,比如一般的GET都不會帶有請求體。

上圖就是瀏覽器登錄豆瓣時向服務器發(fā)送的HTTP POST 請求,請求體中指定了用戶名和密碼。

HTTP 響應

HTTP 響應格式與請求的格式很相似,也是由響應行、響應頭、空行、響應體組成。

一文看懂Python爬蟲

響應行也包含三部分,分別是服務端的 HTTP 版本號、響應狀態(tài)碼和狀態(tài)說明。

這里狀態(tài)碼有一張表,對應了各個狀態(tài)碼的意思

一文看懂Python爬蟲

一文看懂Python爬蟲 一文看懂Python爬蟲

第二部分就是響應頭,響應頭與請求頭對應,是服務器對該響應的一些附加說明,比如響應內(nèi)容的格式是什么,響應內(nèi)容的長度有多少、什么時間返回給客戶端的、甚至還有一些 Cookie 信息也會放在響應頭里面。

第三部分是響應體,它才是真正的響應數(shù)據(jù),這些數(shù)據(jù)其實就是網(wǎng)頁的 HTML 源代碼。

爬蟲代碼怎么寫

爬蟲可以用很多語言比如 Python、C++等等,但是我覺得Python是最簡單的,

因為Python有現(xiàn)成可用的庫,已經(jīng)封裝到幾乎完美,

C++雖然也有現(xiàn)成的庫,但是它的爬蟲還是比較小眾,僅有的庫也不足以算上簡單,而且代碼在各個編譯器上,甚至同一個編譯器上不同版本的兼容性不強,所以不是特別好用。所以今天主要介紹python爬蟲。

安裝requests庫

cmd運行:pip install requests ,安裝 requests。

然后在 IDLE 或者編譯器(個人推薦 VS Code 或者 Pycharm )上輸入

import requests 運行,如果沒有報錯,證明安裝成功。

安裝大部分庫的方法都是:pip install xxx(庫的名字)

requests的方法

requests.request() 構造一個請求,支撐一下各方法的基本方法
requests.get() 獲取HTML網(wǎng)頁的主要方法,對應于HTTP的GET

requests.head()

獲取HTML網(wǎng)頁頭信息的方法,對應于HTTP的HEAD

requests.post() 向HTML網(wǎng)頁提交POST請求的方法,對應于HTTP的POST
requests.put() 向HTML網(wǎng)頁提交PUT請求的方法,對應于HTTP的PUT
requests.patch( ) 向HTML網(wǎng)頁提交局部修改請求,對應于HTTP的PATCT
requests.delete() 向HTML網(wǎng)頁提交刪除請求,對應于HTTP的DELETE

最常用的get方法

r = requests.get(url)

包括兩個重要的對象:

構造一個向服務器請求資源的Request對象;返回一個包含服務器資源的Response對象

r.status_code HTTP請求的返回狀態(tài),200表示連接成功,404表示失敗
r.text HTTP響應內(nèi)容的字符串形式,即,url對應的頁面內(nèi)容
r.encoding 從HTTP header中猜測的響應內(nèi)容編碼方式(如果header中不存在charset,則認為編碼為ISO-8859-1)
r.apparent_encoding 從內(nèi)容中分析的響應內(nèi)容編碼方式(備選編碼方式)
r.content HTTP響應內(nèi)容的二進制形式
requests.ConnectionError 網(wǎng)絡連接錯誤異常,如DNS查詢失敗、拒絕連接等
requests.HTTPError HTTP錯誤異常
requests.URLRequired URL缺失異常
requests.TooManyRedirects 超過最大重定向次數(shù),產(chǎn)生重定向異常
requests.ConnectTimeout 連接遠程服務器超時異常
requests.Timeout 請求URL超時,產(chǎn)生超時異常

爬蟲小demo

requests是最基礎的爬蟲庫,但是我們可以做一個簡單的翻譯

我先把我做的一個爬蟲的小項目的項目結構放上,完整源碼可以私聊我下載。

一文看懂Python爬蟲

下面是翻譯部分的源碼

import requests def English_Chinese(): 	url = "https://fanyi.baidu.com/sug" 	s = input("請輸入要翻譯的詞(中/英):") 	dat = { 		"kw":s 		} 	resp = requests.post(url,data = dat)# 發(fā)送post請求 	ch = resp.json() # 將服務器返回的內(nèi)容直接處理成json => dict 	resp.close() 	dic_lenth = len(ch['data']) 	for i in range(dic_lenth): 		print("詞:"+ch['data'][i]['k']+" "+"單詞意思:"+ch['data'][i]['v'])
登錄后復制

代碼詳解:

導入requests模塊,設置 url為百度翻譯網(wǎng)頁的網(wǎng)址。

一文看懂Python爬蟲

然后通過 post 方法發(fā)送請求,再把返回的結果打成一個 dic (字典),但是這個時候我們打印出來結果發(fā)現(xiàn)是這樣的。

一文看懂Python爬蟲

這是一個字典里套列表套字典的樣子,大概就是這樣的

{ xx:xx , xx:[ {xx:xx} , {xx:xx} , {xx:xx} , {xx:xx} ] }

我標紅的地方是我們需要的信息。

假如說我標藍色的列表里面有 n 個字典,我們可以通過 len() 函數(shù)獲取 n 的數(shù)值,

并使用 for 循環(huán)遍歷,得到結果。

dic_lenth = len(ch['data'] for i in range(dic_lenth):     print("詞:"+ch['data'][i]['k']+" "+"單詞意思:"+ch['data'][i]['v'])
登錄后復制

最后

好了,今天的分享就到這里了,拜拜~

哎?忘了一件事,再給你們一個爬取天氣的代碼!

# -*- coding:utf-8 -*- import requests import bs4   def get_web(url):     header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.59"}     res = requests.get(url, headers=header, timeout=5)     # print(res.encoding)     content = res.text.encode('ISO-8859-1')     return content   def parse_content(content):     soup = bs4.BeautifulSoup(content, 'lxml')      '''     存放天氣情況     '''     list_weather = []     weather_list = soup.find_all('p', class_='wea')     for i in weather_list:         list_weather.append(i.text)      '''     存放日期     '''     list_day = []     i = 0     day_list = soup.find_all('h1')     for each in day_list:         if i <= 6:             list_day.append(each.text.strip())             i += 1     # print(list_day)      '''     存放溫度:最高溫度和最低溫度     '''     tem_list = soup.find_all('p', class_='tem')     i = 0     list_tem = []     for each in tem_list:         if i == 0:             list_tem.append(each.i.text)             i += 1         elif i > 0:             list_tem.append([each.span.text, each.i.text])             i += 1     # print(list_tem)      '''     存放風力     '''     list_wind = []     wind_list = soup.find_all('p', class_='win')     for each in wind_list:         list_wind.append(each.i.text.strip())     # print(list_wind)     return list_day, list_weather, list_tem, list_wind   def get_content(url):     content = get_web(url)     day, weather, tem, wind = parse_content(content)     item = 0     for i in range(0, 7):         if item == 0:             print(day[i]+':t')             print(weather[i]+'t')             print("今日氣溫:"+tem[i]+'t')             print("風力:"+wind[i]+'t')             print('n')             item += 1         elif item > 0:             print(day[i]+':t')             print(weather[i] + 't')             print("最高氣溫:"+tem[i][0]+'t')             print("最低氣溫:"+tem[i][1] + 't')             print("風力:"+wind[i]+'t')             print('n')
登錄后復制

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
精品久久久中文字幕| 亚洲精品三级| 国产亚洲精aa在线看| 日韩精品一区二区三区中文| 视频一区欧美日韩| 午夜在线观看免费一区| 午夜在线播放视频欧美| 在线免费观看亚洲| 日韩激情一区二区| 国产精品伊人| 精品久久影院| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 欧美丰满日韩| 国产精品久久久久av蜜臀| 久久中文精品| 久久久久久婷| 久久精品观看| 亚洲欧美网站| 中文不卡在线| 日韩精品第二页| 国产精品中文| 麻豆网站免费在线观看| 亚洲精品.com| 丝袜亚洲精品中文字幕一区| 日韩欧美三区| 国产中文字幕一区二区三区| 国产在线观看www| 国户精品久久久久久久久久久不卡 | 蜜桃视频在线观看一区二区| 国产精品婷婷| 亚洲乱码久久| 麻豆国产欧美日韩综合精品二区| 免费亚洲婷婷| 美女网站视频一区| 影音先锋久久| 亚洲精品系列| 国产成人免费| 欧美综合国产| 国产一卡不卡| 亚洲不卡系列| 亚洲尤物av| 国产专区精品| 午夜欧美在线| 国产剧情一区二区在线观看| 日韩欧美精品综合| 在线免费观看亚洲| 成人小电影网站| 亚洲色图国产| 亚洲天堂资源| 日本免费新一区视频| 福利在线免费视频| 免费久久精品视频| 精品久久久久久久| 蜜桃久久久久久| 麻豆理论在线观看| 日本不卡的三区四区五区| 美女福利一区二区三区| 亚洲精品韩国| 亚洲涩涩av| 精品欧美一区二区三区在线观看| 一区二区三区国产盗摄| 麻豆精品av| 国产日韩欧美一区二区三区| 日韩在线观看一区二区| 久久精品日韩欧美| 亚洲高清av| 国产精品一二| 欧美在线亚洲| 精品黄色一级片| 亚洲人成精品久久久| 久久人人精品| 日韩av专区| 青青伊人久久| 99视频在线精品国自产拍免费观看| 麻豆精品在线观看| 玖玖精品视频| 日韩精品首页| 精品视频久久| 日本欧美一区| 午夜久久99| 日韩中文在线电影| 91精品国产自产在线丝袜啪| 国产精品日本欧美一区二区三区| 日本久久综合| 国产精品亚洲成在人线| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品分类| 亚洲欧美日韩国产| 久久国产中文字幕| 欧美黑人巨大videos精品| 久久成人亚洲| 国内精品福利| 日韩精品电影| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 国产午夜久久av| 樱桃成人精品视频在线播放| 久久婷婷一区| 国产中文在线播放| 精品久久久久久久| 久久99久久人婷婷精品综合| 青青国产91久久久久久| 不卡一区2区| 亚洲人成在线网站| 国产精品黄色| 国产欧美日韩一区二区三区在线| 亚洲精品系列| 丝袜美腿成人在线| 99riav国产精品| 久久男女视频| 久久久久99| 色爱av综合网| 成人精品天堂一区二区三区| 日韩不卡免费高清视频| 中文在线а√在线8| 国产一区二区三区四区| 欧美国产三级| 国产精品高清一区二区| 国产精品久久久一区二区| 中文无码久久精品| 久久亚洲二区| 男女性色大片免费观看一区二区 | 亚洲激情中文在线| 香蕉精品视频在线观看| 欧美不卡视频| 亚洲精品午夜av福利久久蜜桃| 欧美日一区二区| av一区二区高清| 欧美综合二区| 亚洲日产av中文字幕| 免费观看在线综合| 日韩一二三区在线观看| 日韩av一区二区三区四区| 婷婷综合成人| 国产九九精品| 高清不卡一区| 久久中文字幕av一区二区不卡| 欧美日韩国产免费观看视频| 中文欧美日韩| 亚洲无线观看| 国产亚洲字幕| 欧美黑人做爰爽爽爽| 麻豆国产在线| 99成人在线| 日韩精品一区二区三区中文在线| 日韩精品视频在线看| 久久精品99国产精品| 国产精品免费大片| 国产aⅴ精品一区二区三区久久| 日韩高清欧美| 夜夜嗨一区二区| 91嫩草精品| 天堂8中文在线最新版在线| 亚洲小说欧美另类婷婷| 视频一区二区三区入口| 欧美一级网站| 在线精品亚洲欧美日韩国产| 欧美日韩国产探花| 日韩激情av在线| 精品亚洲自拍| 激情久久婷婷| 一区二区91| 红杏一区二区三区| 影音国产精品| 国产精品一区二区三区美女 | 久久九九电影| 蜜桃视频一区二区三区在线观看| 欧美久久精品| www成人在线视频| 最新亚洲国产| sm久久捆绑调教精品一区| 久久都是精品| 久久精品国产免费| 精品欧美激情在线观看| 日韩不卡手机在线v区| 麻豆视频在线看| 亚洲精品成人一区| 日韩大片免费观看| 日韩国产91| 最近高清中文在线字幕在线观看1| 亚洲欧美日韩视频二区| 精品国产一区二区三区噜噜噜| 欧美二区视频| 国产麻豆一区| 99视频一区| 国产一区二区三区四区五区| 亚洲一区区二区| 精品一区二区三区在线观看视频| 国产韩日影视精品| 国产亚洲一区二区三区啪| 欧美性感美女一区二区| 久久黄色影视| 红桃视频国产精品| 国产精品igao视频网网址不卡日韩| 欧美成人高清| 国产成人久久精品一区二区三区| 亚洲性视频在线| 日本精品影院| 国产福利一区二区三区在线播放| 一区三区视频| 日韩成人精品一区二区|