前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BeautifulSoup的基本功能介绍

BeautifulSoup的基本功能介绍

原创
作者头像
小白学大数据
发布2023-03-10 15:49:15
3760
发布2023-03-10 15:49:15
举报
文章被收录于专栏:python进阶学习

在日常爬虫工作中会遇到很多数据对比的测试任务,在后端接口有做数据加密,或接口有做鉴权等情况下,我们再从后端去取参数,耗费的时间成本就会增加。网上查了下,我们可以通过走前端页面上去获取数据,简单学习了下,居然可以使用requests + BeautifulSoup 以及其他一些工具包来实现该功能。

关于BeautifulSoup爬的使用这里我们可以简单的介绍下,BeautifulSoup是python的一个库,最主要的功能是从网页抓取数据,在抓取的过程中会使用到一些功能。

1、请求头herders的使用,参考示例如下:

代码语言:javascript
复制
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36','referer':"www.mmjpg.com" }
all_url = 'http://www.mmjpg.com/' 
'User-Agent':请求方式  
'referer':从哪个链接跳转进来的

2、解析获取的页面

代码语言:javascript
复制
Soup = BeautifulSoup(start_html.text, 'lxml')
BeautifulSoup:解析页面
lxml:解析器
start_html.text:页面的内容

3、获取目标内容

代码语言:javascript
复制
<a href =# >内容</a>
a[i]/get_text():获取第i个a标签里面的内容】

爬取数据案例如下,这里以访问豆瓣为需求,因为豆瓣的反爬机制都是比较严的,并且需要登录,这里只是实践不做大量数据抓取,所以只在代码里面添加了代理IP。

代码语言:javascript
复制
#! -*- encoding:utf-8 -*-

    import requests
    import random

    # 要访问的目标页面
    targetUrl = "https://www.baidu.com/"

    # 要访问的目标HTTPS页面
    # targetUrl = "https://www.baidu.com/"
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"
    # 代理验证信息
    proxyUser = "udfejfhk"
    proxyPass = "568547"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }

    # 设置 http和https访问都是用HTTP代理
    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }


    #  设置IP切换头
    tunnel = random.randint(1,10000)
    headers = {"Proxy-Tunnel": str(tunnel)}



    resp = requests.get(targetUrl, proxies=proxies, headers=headers)

    print resp.status_code
    print resp.text

BeautifulSoup虽然作为一个爬虫工具还是有很多的用处的,这里只是对功能做个简单介绍和认识,希望能对大家有帮助,有更优的实现方式可以自己再添代码实现。另外,BeautifulSoup还有很多功能,比如修改删除功能,这些功能可以再日后的学习中慢慢了解。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档