從零開始的網絡爬蟲-01.簡單的網絡爬蟲

總結

  • 1.網絡爬蟲就是從網絡上進行數據採集
  • 2.經常使用的工具備urllib,beautifulsoup4
  • 3.一些網站有反爬措施,須要加上headers後進行訪問
  • 4.beautifulsoup4能夠將爬取到的信息轉換爲便於解析的對象

什麼是網絡爬蟲

  • 假設互聯網是張蜘蛛網,咱們須要瞭解這張網上有多少隻蝴蝶(我的感受fly更貼切,但太噁心了...).那麼,咱們的小蜘蛛就須要在這張網上進行巡邏,遇到蝴蝶,就收集起來,這種從網絡上採集數據的行爲就能夠理解爲網絡爬蟲.

網絡爬蟲的知識儲備

  • 爲了捉到小蝴蝶,小蜘蛛在新手村裏學習了Python,HTML,CSS,JavaScript以及簡單的網絡知識,村裏的鐵匠告訴小蜘蛛,在村子外圍有小蝴蝶出沒,因而,小蜘蛛出發了.

簡單的網絡爬蟲

  • 離開了新手村的小蜘蛛很快就發現了小蝴蝶的蹤影 butterfly_url
butterfly_url = 'https://www.cnblogs.com/willow-blueness/p/11704560.html'
  • 小蜘蛛火燒眉毛的取出了本身的精靈球 urlopen,嗷嗚的一聲就向小蝴蝶丟了過去
from urllib.request import urlopen

butterfly_catch = urlopen(butterfly_url)

print(butterfly_catch.read())
  • 小蝴蝶也很聰明呀,看到小蜘蛛想不通過瀏覽器大大就非法捕獲它,那哪能贊成啊,拋出了"urllib.error.HTTPError: HTTP Error 403: Forbidden"的異常,就靈巧的躲開了.
  • 因而,機靈的小蜘蛛就僞造了一份瀏覽器大大的手令:
catch_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"}
  • 小蜘蛛再次拋出精靈球:
from urllib.request import urlopen,Request

  butterfly_url = 'https://www.cnblogs.com/willow-blueness/p/11704560.html'

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

  butterfly_request = Request(butterfly_url,headers=catch_headers)

  print(urlopen(butterfly_request).read())
  • 天真的小蝴蝶被捉住了...
  • 本覺得這個尷尬的故事到這裏就結束了,但是小蜘蛛恰恰想知道小蝴蝶口袋裏有幾顆糖.因而,小蜘蛛就從鐵匠那邊學習了新的技能(引入新的python包):
pip install beautifulsoup4
  • 掌握了新技能的小蜘蛛利用beautifulsoup開始探索小蝴蝶到底有幾顆糖:
from bs4 import BeautifulSoup

  butterfly_html = urlopen(butterfly_request).read()
  butterfly_obj = BeautifulSoup(butterfly_html,features="html.parser")
  • 到這裏,小蝴蝶被小蜘蛛瞭解了個完全,小蜘蛛想知道啥,就直接查詢butterfly_obj這個對象了,小蝴蝶哭暈在角落 Orz~~~