【Python学习】Day-026 浏览器伪装、bs4数据解析
1. 浏览器伪装
requests发送请求时传入headers(user-agent)
import requests headers = { user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 } response = requests.get(https://movie.douban.com/top250, headers=headers) print(response.text)
2. bs4数据解析
-
专门用来解析网页数据的第三方库。(基于css选择器解析网页数据) 这个库下载的时候用’beautifulsoup4’, 使用的时候用’bs4’ 注意:在使用bs4做数据解析的时候,需要依赖’lxml’这个第三方库或者使用html.parser
# 导入解析相关类 from bs4 import BeautifulSoup # bs4的用法 # 1)准备需要解析的数据(获取网页数据) html = open(files/test.html, encoding=utf-8).read() # 2)基于网页源代码创建BeautifulSoup对象 # soup对象代表网页对应的html标签(代表整个网页) soup = BeautifulSoup(html, lxml) # soup = BeautifulSoup(html, html.parser) # 3)获取标签 # soup.select(css选择器) - 在整个网页中获取css选择器选中的所有标签,返回值是一个列表,列表中元素是标签对象 # soup.select_one(css选择器) - 在整个网页中获取css选择器选中的第一个标签,返回值是标签对象 result = soup.select(#box1 p) print(result) # [<p>肖生克的救赎</p>, <p>霸王别姬</p>, <p>阿甘正传</p>] result = soup.select_one(#box1 p) print(result) # <p>肖生克的救赎</p> # 标签对象.select(css选择器) - 在指定标签中获取css选择器选中的所有表情,返回值是一个列表,列表中元素是标签对象 # 标签对象.select_one(css选择器) - 在指定标签中获取css选择器选中的第一个标签,返回值是标签对象 result = soup.select(p) print(result) # [<p>肖生克的救赎</p>, <p>霸王别姬</p>, <p>阿甘正传</p>, <p>我是段落1</p>] box2 = soup.select_one(#box2) result = box2.select(p) print(result) # [<p>我是段落1</p>] # 4)获取标签内容和标签属性 p = soup.select_one(p) # <p>肖生克的救赎</p> img = soup.select_one(img) # a. 获取标签内容: 标签对象.text print(p.text) # 肖生克的救赎 # b.获取标签属性值: 标签对象.attrs[属性名] print(img.attrs[src], img.attrs[alt])