更新时间:2023-08-31 04:21:42
你们好,最近小艾特发现有诸多的小伙伴们对于beautifulSoup选择radio,beautifulsoup这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、 直接上代码,因为这里没有关于爬虫的知识,就不详细说了。解释以下几点:
2、 1.1.url指向你要抓取的网页地址;
3、 2.translation_html是网页地址对应的html代码,对应的页面对照下图;
4、 3.要介绍的BeautifulSoup是分析第2点中translation_html的内容。
5、 -代码分割线。
6、 import urllib.request as rq
7、 url='https://www.baidu.com'
8、 req=rq.Request(url, headers={ 'Connection': 'Keep-Alive', 'Accept': 'text/html, application/xhtml+xml, */*', 'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko' })
9、 translation_html=rq.urlopen(req).read().decode('utf-8')
10、 可以通过pip命令直接安装:
11、 如果您想解析html之外的其他格式的文档,您可以安装其他库,例如:
12、 安装后,使用python中BeautifulSoup的函数之前(。py)文件,您需要在。包含以下语句的py文件。
13、 我们已经从第一步获得了要解析的HTML代码,从第二步安装并导入了BeautifulSoup库,然后就可以使用BeautifulSoup库提供的函数解析pro-HTML内容了。为了便于解释,
14、 这里不谈原理,都是举例让大家理解。
15、 先看一段代码:
16、 为了使解释更加简洁,translation_html对应的HTML代码被视为如下:
17、 html
18、 body
19、 div id='div1'
20、 p class='p1 first'p1 content!-- p1 comment --/p
21、 p class='p2 second'p2 content/p
22、 /div
23、 /body
24、 /html
25、 下面的描述主要针对这段代码来说明BeautifulSoup的解析过程。
26、 =返回一个BeautifulSoup对象:整个html代码(从html到/html)。
27、 =查找所有div元素并返回一个列表:第一个元素为的代码(从div id='div1 '到/div)。
28、 =查找第一个div元素并返回BeautifulSoup对象:(from div id='div1' to /div)
29、 =查找所有p个元素并返回一个列表:第一个元素是' p class='p1'p1 content/p '第二个元素是' p class='p2'p2 content/p '
30、 =查找div下的直接下级P元素并返回列表:第一个元素为' p class='p1'p1 content/p '第二个元素为' p class='p2'p2 content/p '
31、 =查找第一个p元素并返回一个BeautifulSoup对象(p class='p1'p1 content/p)。
32、 注意:上面返回列表中的每个元素也是一个BeautifulSoup对象。您可以将返回的BeautifulSoup对象视为原始HTML上的子HTML。此子对象上的操作方法与原始对象相同。
33、 在soup('p ')的基础上增加一个限定条件,可以使搜索范围更加准确。返回值也是一个列表。相当于soup.findAll(.).
34、 属性值还可以接受正则表达式:如上述的'p2'可以被替换为s【s=re.compile(r'fir')】
35、 =返回上面列表中的第一元素。
36、 attrs参数的内容可以有多个,如id,class,name什么都可以加进入,以最大限度的精确查找。
37、 =返回第一个p元素的class属性列表(['p1', 'first'])
38、 =返回第一个p元素的内容(p1 content),注意不包含注释的内容
39、 以上就是BeautifulSoup库的基本用法,相信通过大家的举一反三,应该能够完成你想要的功能了。
以上就是beautifulsoup这篇文章的一些介绍,希望对大家有所帮助。