日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...

發(fā)布時間:2023/12/9 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天為大家?guī)淼膬?nèi)容是:干貨分享:python爬蟲模擬瀏覽器的兩種方法實例分析(趕緊收藏)

文章主要介紹了python爬蟲模擬瀏覽器的兩種方法,結(jié)合實例形式分析了Python爬蟲模擬瀏覽器的兩種常見操作技巧與使用注意事項,需要的朋友可以參考下!!!

本文實例講述了python爬蟲模擬瀏覽器的兩種方法。分享給大家供大家參考,具體如下:

爬蟲爬取網(wǎng)站出現(xiàn)403,因為站點做了防爬蟲的設置

一、Herders 屬性

爬取CSDN博客

爬取結(jié)果urllib.error.HTTPError: HTTP Error 403: Forbidden

這就說明CSDN做了一些設置,來防止別人惡意爬取信息

所以接下來,我們需要讓爬蟲模擬成瀏覽器

任意打開一個網(wǎng)頁,比如打開百度,然后按F12,此時會出現(xiàn)一個窗口,我們切換到Network標簽頁,然后點擊刷新網(wǎng)站,選中彈出框左側(cè)的“www.baidu.com”,即下圖所示:

往下拖動 我們會看到“User-Agent”字樣的一串信息,沒錯 這就是我們想要的東西。我們將其復制下來。

此時我們得到的信息是:”Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36”

接下來我們可以用兩種方式來模擬瀏覽器訪問網(wǎng)頁。

二、方法1:使用build_opener()修改報頭

由于urlopen()不支持一些HTTP的高級功能,所以我們需要修改報頭??梢允褂胾rllib.request.build_opener()進行,我們修改一下上面的代碼:

上面代碼中我們先定義一個變量headers來儲存User-Agent信息,定義的格式是(“User-Agent”,具體信息)

具體信息我們上面已經(jīng)獲取到了,這個信息獲取一次即可,以后爬取其他網(wǎng)站也可以用,所以我們可以保存下來,不用每次都F12去找了。

然后我們用urllib.request.build_opener()創(chuàng)建自定義的opener對象并賦值給opener,然后設置opener的addheaders,就是設置對應的頭信息,格式為:“opener(對象名).addheaders = [頭信息(即我們儲存的具體信息)]”,設置好后我們就可以使用opener對象的open()方法打開對應的網(wǎng)址了。格式:“opener(對象名).open(url地址)”打開后我們可以使用read()方法來讀取對應數(shù)據(jù),并賦值給data變量。

得到輸出結(jié)果:

三、方法2:使用add_header()添加報頭

除了上面的這種方法,還可以使用urllib.request.Request()下的add_header()實現(xiàn)瀏覽器的模擬。

先上代碼:

好,我們來分析一下:

導入包,定義url地址我們就不說了,我們使用urllib.request.Request(url)創(chuàng)建一個Request對象,并賦值給變量req,創(chuàng)建Request對象的格式:urllib.request.Request(url地址)

隨后我們使用add_header()方法添加對應的報頭信息,格式:Request(對象名).add_header(‘對象名','對象值')

現(xiàn)在我們已經(jīng)設置好了報頭,然后我們使用urlopen()打開該Request對象即可打開對應的網(wǎng)址,多以我們使用

data = urllib.request.urlopen(req).read()打開了對應的網(wǎng)址,并讀取了網(wǎng)頁內(nèi)容,并賦值給data變量。

以上,我們使用了兩種方法實現(xiàn)了爬蟲模擬瀏覽器打開網(wǎng)址,并獲取網(wǎng)址的內(nèi)容信息,避免了403錯誤。

值得我們注意的是,方法1中使用的是addheaders()方法,方法2中使用的是add_header()方法,注意末尾有無s以及有無下劃線的區(qū)別。

以上就是本文的全部內(nèi)容啦!!!希望本文所述對大家Python程序設計有所幫助。

嗨嘍:正在學習python的小伙伴或者打算學習的,可以看下面領取資料!

總結(jié)

以上是生活随笔為你收集整理的python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。