爬虫原理和网页构造

  • 爬虫原理
    • 网络连接:计算机一次Request请求和服务器端的Response回应,即实现了网络连接。
    • 爬虫原理:(1)模拟计算机对服务器发起的Request请求;(2)接收服务器端的Response内容并解析,提取所需的信息。有多页面爬虫和跨页面爬虫。
  • 网页构造:安装和使用和chrome浏览器;
  • 安装需要的第三方库:Requests,BeautifulSoup,Lxml;
    • Requests库:让HTTP服务人类;作用就是请求网站获取网页数据的;
      • 有时爬虫需要加入请求头来伪装成浏览器,以便更好地抓取数据;
      • 步骤:在chrome浏览器中打开开发者工具,点击network,按f5刷新网页,点击name里的任意文件,找到User-Agent进行复制;
    • BeautifulSoup库:用来解析Requests库请求的网页,并把网页源代码解析为Soup文档,以便过滤提取数据。
      • BeautifulSoup库除了支持python标准库中的HTML解析器外,还支持一些第三方的解析器;BeautifulSoup库解析器有:python标准库,lxml HTML解析器,Lxml XML解析器,html5lib解析器;
      • BeautifulSoup库在python标准库中的使用方法:BeautifulSoup(makeup,"html.parser")
      • BeautifulSoup库在lxml HTML解析器中的使用方法:BeautifulSoup(makeup,"lxml") (官方推荐,速度快,文档容错能力强)
      • 解析得到的Soup文档可以使用find()和find_all()方法及selector()方法定位需要的元素;
        • selector()方法:soup.selector(div.item > a >h1) 括号内容通过chrome复制得到;
        • 注意:li:nth-child(1)在python中运行会报错,需改为li:nth-of-type(1);
        • 打印数据时,若提取的信息包含标签,可以用get_text()方法获得中间的文字信息;
    • Lxml库:基于libxml2这一个XML解析库的python封装。该模块使用c语言编写,解析速度比BeautifulSoup库更快。
posted @ 2019-02-15 22:48  瞧七  阅读(377)  评论(0编辑  收藏  举报