python爬虫 request和bs4的基本用法

request库的用法

request库的安装

pip3 install request

request的主要方法

1、我们主要使用以下方法去请求网页信息,获取网页文件信息

requests.post('http://httpbin.org/post')

requests.get('http://httpbin.org/get')

2、在请求某些网站访问时必须带有浏览器等信息,如果不传入headers就会报错

headers = {

 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'

}

response = requests.get("发现 - 知乎", headers=headers)

print(response.text)

3、调用方法后返回网页信息的变量属性

response = requests.get('简书 - 创作你的创作')

# 状态码

print(type(response.status_code), response.status_code)

print(type(response.headers), response.headers)

print(type(response.cookies), response.cookies)

# 网页链接

print(type(response.url), response.url)

print(type(response.history), response.history)

 bs4库用法

bs4库的安装

pip install bs4

bs4库的用法

 bs4库通过将request库方法返回的网页信息解析,生成一颗类树状的数据,方便我们去调用和遍历。

# 调用request库的get方法获取网页信息

response = requests.get('https://www.52bqg.org/')

# 传入刚获取到的网页信息以及要使用解析器参数

soup = BeautifulSoup(response.text,'html.parser')

 BeautifulSoup可以接受以下几种解析器的参数来对信息进行初始化。

 解析网页信息后,我们就可以便捷的寻找我们想要的信息。BeautifulSoup中的树状数据格式与html文本类似。

例如,假如我们需要从获取到的网页信息中寻找以下信息

 

<div class="cl3">

                <a href='http://firefox.com.cn/'></a>

                <p>

                    油茶是生活在广西、湖南、贵州等山区的瑶族、侗族、苗族等少数民族最喜爱的一种传统食品。制作方法是以老叶红茶为主料,用油炒至微焦而香,放入食盐加水煮沸,多数加生姜同煮,味浓而涩,涩中带辣,在古镇内的小巷里就能喝到。景区保留了传统的茶叶作坊以及唐宋时期的蒸青制茶工艺,游客还可以吃到按...价格

                    <strong>10元/碗 </strong>

                </p>

                <p>

                    <strong>推荐等级:<strong class="p1">A级</strong></strong>

                </p>

            </div>

 那么我们可以使用find函数来获取到该div

# 第一个参数为你所要寻找的标签名,第二个参数为你要寻找的标签的属性名键值对

div = soup.find('div',attrs={'class':'cl3'})

# 同理,你也可以寻找这样的div

#soup.find('div',attrs={'id':'cl3'})

 注意:因为find函数只会返回符合条件的第一个标签信息,如果没有添加attrs参数,则可能不会找到你想要的信息,而findAll函数可以返回符合条件的所有标签信息。

找到该div标签后,我们提取到p标签中的文字信息

listP = div.findAll('p')

for p in listP:

        # 使用标签中的string属性可以获取到标签之间的文字信息

        print(p.string)

当然,我们也可以获取到a标签中的网站信息

labelA = div.find('a')

# 使用[]来获取标签的属性信息

print(labelA ['href'])

 BeautifulSoup中仍有许多有用的属性,例如

# 获取当前标签的name值

print(div.name) # div

print(labelA .name) # a

# 获取当前标签的父亲节点

labelA.parent   # div

#获取当前节点的class属性值

print(div['class'])  # cl3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值