聚焦python爬虫

概念解释:

  • 聚焦爬虫:爬取页面中指定的界面内容
  • 第三方库下载镜像地址:https://pypi.tuna.tsinghua.edu.cn/simp

编码流程:

  • 指定url

  • 发起请求

  • 获取响应数据

  • 数据解析

  • 持久化存储

数据解析:

  • 正则表达式
  • bs4(BeautifulSoup4)
  • xpath

        数据解析原理概述:

                ——解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储

                        1、进行指定标签的定位

                        2、标签或者标签对应的属性中存储的数据值进行提取(解析)

示例:

<div class="content"><div class="lift"><div class="nr"><dl class="xhlist" id=".*?">.*?<dd>.*?<br><img src="(.*?)"></br></dd>.*?</dl></div></div></div>
<dd>.*?<br><img src="(.*?)"><br></dd>

利用bs4进行数据解析:

        ——数据解析原理:

                1、标签定位

                2、提取标签、标签属性中存储的数据值

         ——bs4数据解析原理:

                1、实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中

                        ——如何实例化一个BeautifulSoup对象:

                                ——from bs4 import BeautifulSoup

                                ——对象的实例化:

                                        —1、将本地的HTML文档中的数据加载到对象中         

fp = open('./test.html','r',encoding='utf-8')
                soup = BeautifulSoup(fp,'lxml')

                                        —2、将互联网上获取的网页源码加载到该对象中

page_text = response.text
                soup = BeatifulSoup(page_text,'lxml')
page_text = requests.get(url=url1,headers=headers).text.encode('ISO-8859-1')
    #print(page_text)
    soup = BeautifulSoup(page_text,'lxml')
    #print(soup)

                2、通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取

                        ——提供的用于数据解析的方法和属性:

                                —1、soup.tagName:返回的是文档中第一次出现的tagName对应的标签

                                —2、soup.find():

                                        —soup.find(‘tagName’):等同于soup.tagName

td = soup.find('div',id="list")
    td_dl = soup.select('dl > dd')

                                        —属性定位:

                                                —soup.find('div',class_/id/attr='song')

                                        —soup.find_all('thgName'):返回符合要求的所有标签(列表)

                                —select:

                                        —select('某种选择器(id,class,标签...选择器)'),返回的是一个列表

                                        —层级选择器:

                                                —soup.select('.tang > ul > li > a'):>表示的是一个层级

                                                —soup.select('.tang > ul a'):空格表示的多个层级

                                —获取标签之间的文本数据:

                                        —soup.a.test/string/get_text()

                                        —text/get_text():可以获取某一个标签中所有的文本内容

                                        —string:只可以获取该标签下的直系的文本内容

                                —获取标签中属性值:

                                        —soup.a['属性名称']

                

目录

概念解释:

编码流程:

指定url

发起请求

获取响应数据

数据解析

持久化存储

数据解析:

利用bs4进行数据解析:

 


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值