欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python-爬蟲(chóng)開(kāi)發(fā)01

汽車(chē)電子技術(shù) ? 來(lái)源:程序猿知秋 ? 作者:程序猿知秋 ? 2023-02-16 15:55 ? 次閱讀

爬蟲(chóng)基本概念

爬蟲(chóng)的定義

  • 網(wǎng)絡(luò)爬蟲(chóng)(被稱(chēng)為 網(wǎng)頁(yè)蜘蛛,網(wǎng)絡(luò)機(jī)器人 ),就是 模擬客戶(hù)端發(fā)送網(wǎng)絡(luò)請(qǐng)求 ,接收請(qǐng)求響應(yīng),一種按照一定的規(guī)則,自動(dòng)地抓取互聯(lián)網(wǎng)信息的程序
  • 一般來(lái)說(shuō),只要瀏覽器上能做的事情,爬蟲(chóng)都可以做

**爬蟲(chóng)的分類(lèi)

**

  • 通用爬蟲(chóng) :通常指搜索引擎的爬蟲(chóng)
  • 聚集爬蟲(chóng) :針對(duì)特定網(wǎng)站或某些特定網(wǎng)頁(yè)的爬蟲(chóng)

ROBOTS協(xié)議

  • Robots協(xié)議: 也叫robots.txt(統(tǒng)一小寫(xiě))是一種存放于網(wǎng)站根目錄下的ASCII編碼的文本文件,它通常告訴網(wǎng)絡(luò)搜索引擎的漫游器(又稱(chēng)網(wǎng)絡(luò)蜘蛛),此網(wǎng)站中的哪些內(nèi)容是不應(yīng)被搜索引擎的漫游器獲取的,哪些是可以被漫游器獲取的
  • 如果將網(wǎng)站視為酒店里的一個(gè)房間,robots.txt就是主人在房間門(mén)口懸掛的“請(qǐng)勿打擾”或“歡迎打掃”的提示牌。這個(gè)文件告訴來(lái)訪的搜索引擎哪些房間可以進(jìn)入和參觀,哪些房間因?yàn)榇娣刨F重物品,或可能涉及住戶(hù)及訪客的隱私而不對(duì)搜索引擎開(kāi)放。但robots.txt不是命令,也不是防火墻,如同守門(mén)人無(wú)法阻止竊賊等惡意闖入者

圖片

舉例:

  • 訪問(wèn)淘寶網(wǎng)的robots文件: https://www.taobao.com/robots.txt

    圖片* 很顯然淘寶不允許百度的機(jī)器人訪問(wèn)其網(wǎng)站下其所有的目錄

  • 如果允許所有的鏈接訪問(wèn)應(yīng)該是:Allow:/

http和https的概念

  • http

    • 超文本傳輸協(xié)議
    • 默認(rèn)端口號(hào):80
  • https

    • HTTP+SSL(安全套接字層)
    • 默認(rèn)端口號(hào):443
  • **HTTPS比HTTP更安全,但是性能更低

    **

圖片

URL的形式

  • sheme://host[:port#]/path/.../[?query-string][#anchor]
    • scheme:協(xié)議(例如:http、https、ftp)
    • host:服務(wù)器ip地址/域名
    • port:服務(wù)器端口號(hào)
    • path:訪問(wèn)資源的路徑
    • query-string:請(qǐng)求的參數(shù)
    • anchor:錨(跳轉(zhuǎn)到網(wǎng)頁(yè)的指定錨點(diǎn)位置)
    • 例:http://item.jd.com/100008959687.html#product-detail

Http常見(jiàn)請(qǐng)求頭

  • Host (主機(jī)和端口號(hào))
  • Connection(鏈接類(lèi)型)
  • Upgrade-insecure-Requests(升級(jí)為https請(qǐng)求)
  • User-Agent(瀏覽器名稱(chēng))
  • Accept(傳輸文件類(lèi)型)
  • Referer(頁(yè)面跳轉(zhuǎn)處)
  • Accept-Encoding(文件編解碼格式)
  • Cookie
  • x-requested-with:XMLHttpRequest(是Ajax異步請(qǐng)求)

圖片

Http常見(jiàn)響應(yīng)碼

  • 200:成功
  • 302:臨時(shí)性重定向到新的url
  • 404:請(qǐng)求的路徑找不到
  • 500:服務(wù)器內(nèi)部錯(cuò)誤

rquests模塊

requests的官網(wǎng)

  • https://docs.python-requests.org/zh_CN/latest/index.html

圖片

**示例:下載官網(wǎng)上的圖片

**

import requests


url="https://docs.python-requests.org/zh_CN/latest/_static/requests-sidebar.png"
response=requests.get(url)


# 響應(yīng)狀態(tài)碼為200,表示請(qǐng)求成功
if response.status_code==200:
    # 生成圖片
    with open("aa.png","wb") as f:
        f.write(response.content)

response.text 和 response.content 的區(qū)別

  • response.text
    • 類(lèi)型:str
    • 解碼類(lèi)型:根據(jù)http頭部對(duì)響應(yīng)的編碼作出有根據(jù)的推測(cè),推測(cè)的文本編碼
    • 修改編碼的方法:response.encoding='gbk'
  • response.content
    • 類(lèi)型:bytes
    • 解碼類(lèi)型:沒(méi)有指定
    • 修改編碼的方法:response.content.decode('utf-8')

**requests請(qǐng)求帶header

**

  • 主要是模擬瀏覽器,欺騙服務(wù)器,獲取和瀏覽器一致的內(nèi)容
  • header的數(shù)據(jù)結(jié)構(gòu)是 字典

示例

import requests


respons=requests.get("http://www.baidu.com")
print(respons.request.headers)


# 設(shè)置header 模擬谷歌瀏覽器
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
}
respons2=requests.get("http://www.baidu.com",headers=headers)
print(respons2.request.headers)

圖片

獲取User-Agent的值

圖片

帶參數(shù)的requests請(qǐng)求

import requests


url="http://www.baidu.com/s?"
# 添加參數(shù)
params={
    "wd":"hello"
}


# 方式一
respons=requests.get(url,params=params)
# 方式二
respons2=requests.get("http://www.baidu.com/s?wd={}".format("hello"))


print(respons.status_code)
print(respons.request.url)
print(respons2.status_code)
print(respons2.request.url)

圖片

requests發(fā)送post請(qǐng)求

  • 語(yǔ)法
    • response=requests.post("http://www.baidu.com/",data=data,headers=headers)
    • data的數(shù)據(jù)結(jié)構(gòu)是 字典
  • 示例
import requests


url="https://www.jisilu.cn/data/cbnew/cb_list/?___jsl=LST___t=1617719326771"
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
}


params={
    "curr_iss_amt": 20
}


respons=requests.post(url,data=params,headers=headers)
print(respons.content.decode())

requests使用代理方式

  • 使用代理的原因
    • 讓服務(wù)器以為不是同一個(gè)客戶(hù)端請(qǐng)求
    • 防止我們的真實(shí)地址被泄露,防止被追究
  • 語(yǔ)法
    • requetst.get("http://www.baidu.com",proxies=proxies)
    • proxies的數(shù)據(jù)結(jié)構(gòu) 字典
    • proxies={ "http":"http://12.33.34.54:8374","https":"https://12.33.34.54:8374" }
  • 示例
import requests


url="http://www.baidu.com"
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
}


proxies={
    "http": "175.42.158.211:9999"
}
respons=requests.post(url,proxies=proxies)
print(respons.status_code)

**cookie和session的區(qū)別

**

  • cookie數(shù)據(jù)存放在客戶(hù)的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上
  • cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙
  • session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問(wèn)增多會(huì)比較占用服務(wù)器性能
  • 單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4k,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie

爬蟲(chóng)處理cookie和session

  • 帶上cookie、session的好處
    • 能夠請(qǐng)求到登錄之后的頁(yè)面
  • 帶上cookie、session的壞處
    • 一套cookie和session往往和一個(gè)用戶(hù)對(duì)應(yīng),請(qǐng)求太快,請(qǐng)求次數(shù)太多,容易被服務(wù)器識(shí)別為爬蟲(chóng)
  • 如果不需要cookie的時(shí)候盡量不去使用cookie

**requests 處理cookies、session請(qǐng)求

**

  • reqeusts 提供了一個(gè)session類(lèi),來(lái)實(shí)現(xiàn)客戶(hù)端和服務(wù)端的會(huì)話保持
  • 使用方法
    • 實(shí)例化一個(gè)session對(duì)象
    • 讓session發(fā)送get或者post請(qǐng)求
  • 語(yǔ)法
    • session=requests.session()
    • response=session.get(url,headers)
  • 示例
import requests


headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
}


data={
    "email":"用戶(hù)名",
    "password":"密碼"
}


session=requests.session()
# session發(fā)送post請(qǐng)求,cookie保存在其中
session.post("http://www.renren.com/PLogin.do",data=data,headers=headers)
# 使用session請(qǐng)求登錄后才能訪問(wèn)的頁(yè)面
r=session.get("http://www.renren.com/976564425",headers=headers)
print(r.content.decode())
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    54

    文章

    11189

    瀏覽量

    103915
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3797

    瀏覽量

    81439
  • 網(wǎng)絡(luò)爬蟲(chóng)

    關(guān)注

    1

    文章

    52

    瀏覽量

    8724
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python數(shù)據(jù)爬蟲(chóng)學(xué)習(xí)內(nèi)容

    ,利用爬蟲(chóng),我們可以解決部分?jǐn)?shù)據(jù)問(wèn)題,那么,如何學(xué)習(xí)Python數(shù)據(jù)爬蟲(chóng)能?1.學(xué)習(xí)Python基礎(chǔ)知識(shí)并實(shí)現(xiàn)基本的爬蟲(chóng)過(guò)程一般獲取數(shù)據(jù)的過(guò)
    發(fā)表于 05-09 17:25

    Python爬蟲(chóng)與Web開(kāi)發(fā)庫(kù)盤(pán)點(diǎn)

    Python爬蟲(chóng)和Web開(kāi)發(fā)均是與網(wǎng)頁(yè)相關(guān)的知識(shí)技能,無(wú)論是自己搭建的網(wǎng)站還是爬蟲(chóng)爬去別人的網(wǎng)站,都離不開(kāi)相應(yīng)的Python庫(kù),以下是常用的
    發(fā)表于 05-10 15:21

    0基礎(chǔ)入門(mén)Python爬蟲(chóng)實(shí)戰(zhàn)課

    學(xué)習(xí)資料良莠不齊爬蟲(chóng)是一門(mén)實(shí)踐性的技能,沒(méi)有實(shí)戰(zhàn)的課程都是騙人的!所以這節(jié)Python爬蟲(chóng)實(shí)戰(zhàn)課,將幫到你!課程從0基礎(chǔ)入門(mén)開(kāi)始,受眾人群廣泛:如畢業(yè)大學(xué)生、轉(zhuǎn)行人群、對(duì)Python
    發(fā)表于 07-25 09:28

    Python爬蟲(chóng)簡(jiǎn)介與軟件配置

    Python爬蟲(chóng)練習(xí)一、爬蟲(chóng)簡(jiǎn)介1. 介紹2. 軟件配置二、爬取南陽(yáng)理工OJ題目三、爬取學(xué)校信息通知四、總結(jié)五、參考一、爬蟲(chóng)簡(jiǎn)介1. 介紹網(wǎng)絡(luò)爬蟲(chóng)
    發(fā)表于 01-11 06:32

    python網(wǎng)絡(luò)爬蟲(chóng)概述

    的數(shù)據(jù),從而識(shí)別出某用戶(hù)是否為水軍學(xué)習(xí)爬蟲(chóng)前的技術(shù)準(zhǔn)備(1). Python基礎(chǔ)語(yǔ)言: 基礎(chǔ)語(yǔ)法、運(yùn)算符、數(shù)據(jù)類(lèi)型、流程控制、函數(shù)、對(duì)象 模塊、文件操作、多線程、網(wǎng)絡(luò)編程 … 等(2). W3C標(biāo)準(zhǔn)
    發(fā)表于 03-21 16:51

    詳細(xì)用Python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)

    詳細(xì)用Python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)
    發(fā)表于 09-07 08:40 ?32次下載
    詳細(xì)用<b class='flag-5'>Python</b>寫(xiě)網(wǎng)絡(luò)<b class='flag-5'>爬蟲(chóng)</b>

    完全自學(xué)指南Python爬蟲(chóng)BeautifulSoup詳解

    完全自學(xué)指南Python爬蟲(chóng)BeautifulSoup詳解
    發(fā)表于 09-07 08:55 ?39次下載
    完全自學(xué)指南<b class='flag-5'>Python</b><b class='flag-5'>爬蟲(chóng)</b>BeautifulSoup詳解

    WebSpider——多個(gè)python爬蟲(chóng)項(xiàng)目下載

    此文檔包含多個(gè)python爬蟲(chóng)項(xiàng)目
    發(fā)表于 03-26 09:29 ?3次下載

    python爬蟲(chóng)入門(mén)教程之python爬蟲(chóng)視頻教程分布式爬蟲(chóng)打造搜索引擎

    本文檔的主要內(nèi)容詳細(xì)介紹的是python爬蟲(chóng)入門(mén)教程之python爬蟲(chóng)視頻教程分布式爬蟲(chóng)打造搜索引擎
    發(fā)表于 08-28 15:32 ?29次下載

    python為什么叫爬蟲(chóng) python工資高還是java的高

      人工智能的現(xiàn)世,讓python學(xué)習(xí)成風(fēng),由于其發(fā)展前景好,薪資高,一時(shí)成為眾多語(yǔ)言的首選。Python是一門(mén)非常適合開(kāi)發(fā)網(wǎng)絡(luò)爬蟲(chóng)的編程語(yǔ)言,十分的簡(jiǎn)潔方便所以是網(wǎng)絡(luò)
    發(fā)表于 02-19 17:56 ?569次閱讀

    python爬蟲(chóng)框架有哪些

    本視頻主要詳細(xì)介紹了python爬蟲(chóng)框架有哪些,分別是Django、CherryPy、Web2py、TurboGears、Pylons、Grab、BeautifulSoup、Cola。
    的頭像 發(fā)表于 03-22 16:13 ?6859次閱讀

    Python爬蟲(chóng):使用哪種協(xié)議的代理IP最佳?

    網(wǎng)絡(luò)大數(shù)據(jù)要抓取信息,大多需要經(jīng)過(guò)python爬蟲(chóng)工作,爬蟲(chóng)能夠幫助我們將頁(yè)面的信息抓取下來(lái)。
    的頭像 發(fā)表于 06-28 16:25 ?2001次閱讀

    Python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)

    Python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)的方法說(shuō)明。
    發(fā)表于 06-01 11:55 ?21次下載

    利用Python編寫(xiě)簡(jiǎn)單網(wǎng)絡(luò)爬蟲(chóng)實(shí)例

    利用 Python編寫(xiě)簡(jiǎn)單網(wǎng)絡(luò)爬蟲(chóng)實(shí)例2 實(shí)驗(yàn)環(huán)境python版本:3.3.5(2.7下報(bào)錯(cuò)
    發(fā)表于 02-24 11:05 ?14次下載

    如何解決Python爬蟲(chóng)中文亂碼問(wèn)題?Python爬蟲(chóng)中文亂碼的解決方法

    如何解決Python爬蟲(chóng)中文亂碼問(wèn)題?Python爬蟲(chóng)中文亂碼的解決方法 在Python爬蟲(chóng)過(guò)程
    的頭像 發(fā)表于 01-12 15:11 ?2570次閱讀