校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > python爬蟲基礎之簡易網頁搜集器

python爬蟲基礎之簡易網頁搜集器

熱門標簽:南京銷售外呼系統軟件 蓋州市地圖標注 地圖標注的意義點 地圖標注微信發送位置不顯示 浙江電銷卡外呼系統好用嗎 房產電銷外呼系統 地圖制圖標注位置改變是移位嗎 上海機器人外呼系統哪家好 315電話機器人廣告

簡易網頁搜集器

前面我們已經學會了簡單爬取瀏覽器頁面的爬蟲。但事實上我們的需求當然不是爬取搜狗首頁或是B站首頁這么簡單,再不濟,我們都希望可以爬取某個特定的有信息的頁面。

不知道在學會了爬取之后,你有沒有跟我一樣試著去爬取一些搜索頁面,比如說百度。像這樣的頁面

注意我紅筆劃的部分,這是我打開的網頁?,F在我希望能爬取這一頁的數據,按我們前面學的代碼,應該是這樣寫的:

import requests

if __name__ == "__main__":
    # 指定URL
    url = "https://www.baidu.com/s?ie=utf-8f=8rsv_bp=1rsv_idx=2tn=93923645_hao_pgwd=%E5%A5%A5%E7%89%B9%E6%9B%BCrsv_spt=1oq=%25E7%2588%25AC%25E5%258F%2596%25E7%2599%25BE%25E5%25BA%25A6%25E9%25A6%2596%25E9%25A1%25B5rsv_pq=b233dcfd0002d2d8rsv_t=ccdbEuqbJfqtjnkFvevj%2BfxQ0Sj2UP88ixXHTNUNsmTa9yWEWTUEgxTta9r%2Fj3mXxDs%2BT1SUrqlang=cnrsv_dl=tbrsv_enter=1rsv_sug3=8rsv_sug1=5rsv_sug7=100rsv_sug2=0rsv_btype=tinputT=1424rsv_sug4=1424"

    # 發送請求
    response = requests.get(url)

    # 獲取數據
    page_text = response.text

    # 存儲
    with open("./奧特曼.html", "w", encoding = "utf-8") as fp:
        fp.write(page_text)

    print("爬取成功?。?!")

然而打開我們保存的文件,發現結果跟我們想的不太一樣

我們發現我們保存的文件是一個空白的頁面,這是為什么呢?

其實上我們把網址改成搜狗的可能或更直觀一些(不知道為什么我這邊的搜狗總是打不開,所以就用百度做例子,可以自己寫寫有關搜狗搜索的代碼),同樣的代碼改成搜狗的網址結果是這樣的

我們發現其中有句話是 “ 網絡中存在異常訪問 ”,那么這句話是什么意思呢?

這句話的意思就是說,搜狗或是百度注意到發送請求的是爬蟲程序,而不是人工操作。

那么這其中的原理又是什么呢?

簡單來說,就是程序訪問和我們使用瀏覽器訪問是有區別的,被請求的服務器都是靠 user-agent 來判斷訪問者的身份,如果是瀏覽器就接受請求,否則就拒絕。這就是一個很常見的反爬機制。

那是不是我們就沒有辦法呢?

非也~所謂魔高一尺,道高一丈。既然要識別 user-agent ,那么我們就讓爬蟲模擬 user-agent 好了。

在 python 中模擬輸入數據或是 user-agent ,我們一般用字典

就這樣子寫:

header = {
	"user-agent": "" # user-agent 的值 是一個長字符串
	}

那么 user-agent 的值又是怎么得到的呢?

1. 打開任意網頁,右鍵點擊,選擇“檢查”

2. 選擇“ Network ”(谷歌瀏覽器)(如果是中文,就選擇 “網絡” 這一項)

3. 如果發現點開是空白的,像這樣,那就刷新網頁

刷新后是這樣的:

然后隨機選擇紅筆圈起來的一項,我們會看到這樣的東西,然后在里面找到“user-agent”,把它的值復制下來就行了

有了 “user-agent”, 我們在重新寫我們的爬取網頁的代碼,就可以了

import requests

if __name__ == "__main__":
    # 指定URL
    url = "https://www.baidu.com/s?ie=utf-8f=8rsv_bp=1rsv_idx=2tn=93923645_hao_pgwd=%E5%A5%A5%E7%89%B9%E6%9B%BCrsv_spt=1oq=%25E7%2588%25AC%25E5%258F%2596%25E7%2599%25BE%25E5%25BA%25A6%25E9%25A6%2596%25E9%25A1%25B5rsv_pq=b233dcfd0002d2d8rsv_t=ccdbEuqbJfqtjnkFvevj%2BfxQ0Sj2UP88ixXHTNUNsmTa9yWEWTUEgxTta9r%2Fj3mXxDs%2BT1SUrqlang=cnrsv_dl=tbrsv_enter=1rsv_sug3=8rsv_sug1=5rsv_sug7=100rsv_sug2=0rsv_btype=tinputT=1424rsv_sug4=1424"

    # 模擬 “user-agent”,即 UA偽裝
    header = {
        "user-agent" : "" # 復制的 user-agent 的值
        }
    # 發送請求
    response = requests.get(url, headers = header)

    # 獲取數據
    page_text = response.text

    # 存儲
    with open("./奧特曼(UA偽裝).html", "w", encoding = "utf-8") as fp:
        fp.write(page_text)

    print("爬取成功?。?!")

再次運行,然后打開文件

這次成功了,說明我們的爬蟲程序完美地騙過了服務器

到此這篇關于python爬蟲基礎之簡易網頁搜集器的文章就介紹到這了,更多相關python網頁搜集器內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python中利用aiohttp制作異步爬蟲及簡單應用
  • Python爬蟲之線程池的使用
  • python基礎之爬蟲入門
  • python爬蟲請求庫httpx和parsel解析庫的使用測評
  • Python爬蟲之爬取最新更新的小說網站
  • 用Python爬蟲破解滑動驗證碼的案例解析
  • Python爬蟲之必備chardet庫
  • Python爬蟲框架-scrapy的使用
  • Python爬蟲之爬取二手房信息
  • python爬蟲之爬取百度翻譯
  • Django利用Cookie實現反爬蟲的例子
  • python爬蟲之生活常識解答機器人
  • Python異步爬蟲實現原理與知識總結

標簽:克拉瑪依 臨汾 雙鴨山 赤峰 陽泉 金華 貴州 日照

巨人網絡通訊聲明:本文標題《python爬蟲基礎之簡易網頁搜集器》,本文關鍵詞  python,爬蟲,基礎,之,簡易,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python爬蟲基礎之簡易網頁搜集器》相關的同類信息!
  • 本頁收集關于python爬蟲基礎之簡易網頁搜集器的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 海安县| 革吉县| 靖州| 汉沽区| 洛川县| 长宁县| 辽阳县| 嘉兴市| 罗城| 陆良县| 海兴县| 禄丰县| 晋宁县| 克山县| 买车| 汶川县| 土默特右旗| 军事| 张家港市| 红河县| 襄汾县| 通河县| 安吉县| 晋宁县| 随州市| 灌阳县| 遂昌县| 孝义市| 凤冈县| 阳朔县| 玉山县| 大余县| 忻州市| 垫江县| 邯郸市| 建宁县| 湘潭县| 镇宁| 高平市| 崇礼县| 平和县|