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°reefrom=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)