在python擷取網頁的代碼中添加頭資訊類比瀏覽器

來源:互聯網
上載者:User

標籤:alt   read   http   chrome   設定   agent   like   UI   vpd   

為什麼要添加頭部資訊,因為有時候有些網頁會有反爬蟲的設定,導致無法擷取正常的網頁,在這裡,在代碼的頭部添加一個headers資訊,類比成瀏覽器去訪問網頁。

沒有添加頭部資訊的代碼

import urllib2url = "http://blog.51cto.com/lsfandlinux/2046467"file = urllib2.urlopen(url)html = file.read()print html

接下來添加頭部資訊,首先在瀏覽器開啟百度一下,然後檢查網頁的頭部資訊,找到User-Agent,這就是我們用來類比瀏覽器要用到的資訊,把他複製下來。

然後在代碼裡面添加頭部資訊的變數儲存對應的headers資訊,定義的格式為(“User-Agent”,具體資訊)。
在代碼中添加頭部資訊的方法有兩種:
方法1:使用build_opener()來添加

import urllib2url = "http://blog.51cto.com/lsfandlinux/2046467"headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36")opener = urllib2.build_opener()opener.addheaders = [headers]file = opener.open(url)html = file.read()print html

我們利用opener.open(url)就是開啟網頁,這個opener就是具有頭部資訊的操作了。

方法2:利用add_header()來添加

import urllib2url = "http://blog.51cto.com/lsfandlinux/2046467"req = urllib2.Request(url)req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36")file = urllib2.urlopen(req)html = file.read()print html

該方法是通過urllib2裡的Request來建立一個Request對象賦值給變數req,然後使用add_header添加頭部資訊。

在python擷取網頁的代碼中添加頭資訊類比瀏覽器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.