从零开始的网络爬虫-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~~~

猜你喜欢

转载自www.cnblogs.com/willow-blueness/p/11773103.html