request和bs4

本文介绍了Python中使用requests库进行网络请求的方法,包括向目标地址发送请求、设置响应头和编码、获取请求结果等。同时,讲解了如何利用BeautifulSoup进行网页解析,包括创建BeautifulSoup对象、选取标签以及获取标签内容和属性值。内容涵盖了爬取网页、下载图片的基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

requests的用法

request是python用于网络(http)请求的第三方库,也是爬虫获取网络数据的

重要工具

1.向目标地址(网络地址)发送请求

request.get(url,*,headers,proxies,timeout) - 以指定的方式给地址发送网络请求,返回值是服务器的响应对象

参数说明:

url :字符串;请求的网络地址,可能是目标的网络的地址,也可能是数据接口

headers:字典;请求头,用于伪装浏览器设置user-agent、完成自动登录设置cookie

proxies:字典;请求头,用于伪装浏览器设置user-agent、完成自动登录设置

cookie

timeout:数字;设置超时时间

url = 'https://search.51job.com/list/000000,000000,0000,00,9,99,数据分析,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare='
response = requests.get(url, headers=headers)


2.获取相应头

print(response.headers)

3.设置响应的编码方式(在获取请求结果乱码的时候使用)

response.encoding = 'gbk'

4.获取请求结果

1)获取字符串格式的结果(爬网页)

print(response.text)

2)获取二进制格式的结果(爬图片、视频、音频)

print(response.content)

3)获取json解析的结果(爬数据接口)

print(response.json())

爬网页

import requests
url = 'https://cd.zu.ke.com/zufang'
response = requests.get(url)
print(response.text)

下载图片

import request

1.对图片地址发送请求

url = 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png'
response = request.get(url)

2.保存图片数据到本地

open('files/a.png','wb').write(response.content)

bs的用法

注意:安装第三方库的时候安装BeautifulSoup4而不是bs4

from bs4 import BeautifulSoup

1.创建BeautifulSoup对象

BeautifulSoup(html代码,’lxml’) - 返回网页对象

html = open('files/05css选择器(重要).html').read()
soup = BeautifulSoup(html,'lxml')

2.获取标签

1)基于整个网页获取标签

BeautifulSoup对象.select(css选择器) - 返回css选着器在整个网页中选中的所有标签;返回值是列表,列表中元素是标签对象

BeautifulSoup对象.select_one(css选择器) - 返回css选择器在整个网页中选中的第一个标签,返回值是标签对象

result = soup.select('p')
print(result)

result = soup.select('.c1')
print(result)

result = soup.select('div>p')
print(result)

result = soup.select_one('p')
print(result)

result = soup.select_one('div>p')
print(result)

2)基于指定标签获取标签

标签对象.select(css选择器) - 在指定标签中按照选择器中选中相关标签

标签对象.select_one(css选择器)

div = soup.select_one('#box')
result = div1.select('p')
print(result)

3.获取标签内容和标签属性值

1)获取标签内容:

标签对象.text

result = soup.select_one('#p2').text
print(result)

result = soup.select_one('#p2').string
print(result)

result = soup.select_one('#p2').contents
print(result)

获取所有p标签的标签内容

for p in soup.select('p'):
	print(p.text)

2)获取标签属性

标签对象.attrs[属性名]

result = soup.select_one('#a1').attrs
print(result)

result = soup.select_one('#a1').attrs['href']
print(result)

result = soup.select_one('img').attrs['alt']
print(result)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值