python中bs4用法,python3 bs4
计算机编程语言爬行动物的要求和bs4 1 .要求使用方法1.1发送请求
请求:Python基于超文本传送协议(超文本传输协议的缩写)协议发出网络请求的第三方库
发送requests.get(URL,headers ) get请求
requests.post(URL标题)发送邮政请求
参数:
url -请求地址(例如,站点的网址,接口地址、图像地址等)。
标题-设置请求标头(在配置甜饼干和用户代理时使用) ) ) ) ) )。
参数-设置参数
代理-代理设置
发送得到请求并将参数直接连接到全球资源定位器(统一资源定位器)
请求. get (http://API .田key=c9d 408 fefd 8ed 4081 a 9079d 0d 6165d 43 num=10 )
发送邮政请求并将参数设置为参数
params={ key : c9d 408 fefd 8ed 4081 a 9079d 0d 6165d 43 , num :10 请求。653http://API.tianapi.com邮报
响应=请求。get( http://www。应杰生。com/)
设定编码方式(仅在乱码时需要) ) ) ) ) ) )。
response.encoding=gbk
获取响应标头
打印(response.headers)。
取得响应体
获取文本值(为了请求网页并直接获取网页的源代码) ) )。
打印(response.text)。
乙。获取数据分析结果(用于返回数据数据的数据接口) ) ) ) ) ) ) ) )。
打印(响应JSON))
获取内容值(获取用于下载图像、视频和音频的二进制类型的原始数据) ) )。
打印(响应。内容)
2 .添加请求头2.1只添加用户代理
头={ user-agent : Mozilla/5.0(windows nt 10.0;win 64x 64)apple WebKit/537.36(khtml,像壁虎一样)chrome/92。0 .4515 .131 safari/537.36)响应=请求。get())
头={ user-agent : Mozilla/5.0(windows nt 10.0;win 64x 64)apple WebKit/537.36(khtml,像壁虎一样)chrome/92。0 .4515 .131 safari/537.36 , cookie :自身的甜饼干代码origin=toutiao _ PC _ signature=_ 02 B4 z6 wo 00 f 01k。ZP,GSD,多尔庞斯.JSON()( data )for newsinall _ news 3360 print)新闻( title
importrequestsdefdownload _ image(img _ URL:str)获得图像数据响应=requests.get(img_URL)获得数据由本地数据=reeesta
b8fa 9408 c 57d 01 c 8 ~ cs _ noop。巴布亚新几内亚)4.2多图下载
导入请求来自重新导入findalldef download _ image(img _ URL:str):#获取图片数据响应=请求。get(img _ URL)#获取数据保存到本地数据=响应。内容#保存数据到本地f=open(f files/{ img _ URL。split(/)[-1].拆分(!)[0]} , WB )f . write(data)if _ _ name _ _= _ _ main _ _ :response=requests。得到( https://www。58张图。com/tupian/Qixi-0-0。html )result=find all(r (?s)img src=(\S?)“”,回应。text)for x in result:download _ image(f https:{ x } )5。bs4的使用5.1 准备需要解析的网页数据(实际是用请求或者硒获取)
data=open(test2.html ,encoding=utf-8 ).阅读()5.2创建美丽的声音对象(可以自动纠正数据中一些超文本标记语言的错误)
美丽的声音(数据,解析器)
soup=BeautifulSoup(data, lxml) 5.3通过美丽的声音对象获取标签和标签内容
5.3.1 获取标签
美丽的声音对象。选择(css选择器) - 获取钢性铸铁选择器选中的所有标签,返回的是列表,列表中的元素是选中的标签对象
美丽的声音对象。选择一个(css选择器) - 获取钢性铸铁选择器选中的第一个标签:返回的是标签对象
结果=汤。选择( p )打印(结果)结果=汤。选择一个( p )打印(结果)结果=汤。选择(# P1)打印(结果)结果=汤。选择( div p )打印(结果)5.3.2获取标签内容
a.标签对象。字符串-获取标签中的文字内容(只有在标签内容是纯文字的情况下有效,否则结果是无)
p2=汤。select _ one( divp )# print(p2)print(p2。S1=汤。select _ one(# S1)print(S1。字符串)b标签对象get_text() -获取标签内容中所有的文字信息
打印(p2。get _ text())打印(S1。get _ text())c .标签对象。内容
打印(p2。内容)结果=S1。内容冲刺(结果)打印(结果[-1]).get_text()) 5.3.3获取标签属性
a1=汤。select _ one( diva )print(a1)print(a1。attrs[ href ])img 1=汤。select _ one( img )print(img 1)print(img 1。属性[ src ])补充
美丽的声音对象select/select_one(css选择器) - 在整个网页中获取钢性铸铁选择器选中的标签
标签对象select/select_one(css选择器) - 在指定标签中获取钢性铸铁选择器选中的标签
练习来自bs4的导入请求导入美汤导入csvf=open( files/豆瓣TOP250.csv , w ,encoding= utf _ 8 )writer=CSV。作家(f)作家。writerow([封面,电影名,评价,评分,评论人数])i=0def traverse(all_movie_li,I):for Li in all _ movie _ Li:list _ movie=[]img _ URL=Li。选择一个(.pica img’).attrs[ src ]列表_电影。追加(img _ URL)打印(img _ URL)name=Li。选择一个(.标题)。get _ text()list _ movie。append(name)print(name)try:des=Li。选择一个(.inq’).get _ text()list _ movie . append(des)print(des)属性除外错误:列表_电影。追加(无)打印(无)score=li.select_one(.rating _ num’).get _ text()list _ movie。追加(分数)打印(分数)num _ people=李。选择一个(.信息部。BD div span:n-child(4)).get _ text()list _ movie。追加(num _ people)打印(num _ people)编写器。writerow(list _ movie)I=1 print(-,I)return I headers={ User-Agent : Mozilla/5.0(Windows NT 10.0;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/92。0 .4515 .131 Safari/537.36 }响应=请求。得到(’https://电影。豆瓣。com/top 250 ,头=头)汤=美汤(响应。text, lxml )all _ movie _ Li=soup。选择( # content div。文章ol Li )print(all _ movie _ Li)I=traverse(all _ movie _ Li
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。