久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python爬蟲beautifulsoup4系列1

 上海悠悠 2021-05-27

前言

本篇詳細介紹beautifulsoup4的功能,從最基礎(chǔ)的開始講起,,讓小伙伴們都能入門

一,、讀取HTML頁面

1.先寫一個簡單的html頁面,,把以下內(nèi)容copy出來,,保存為html格式文件

<meta charset="UTF-8"> <!-- for HTML5 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html><head><title>yoyo ketang</title></head>
<body>
<b><!--Hey, this in comment!--></b>
<p class="title"><b>yoyoketang</b></p>
<p class="yoyo">這里是我的微信公眾號:yoyoketang
<a class="sister" id="link1">fiddler</a>,
<a class="sister" id="link2">python</a>,
<a class="sister" id="link3">selenium</a>;
快來關(guān)注吧,!</p>

<p class="story">...</p>
2.為了學(xué)習(xí)方便,,可以把此html文件和腳本放同一文件夾下

3.用python的open函數(shù)讀取這個html,如下圖能正確打印出來,,說明讀取成功了

二,、解析器:html.parser

1.用BeautifulSoup的構(gòu)造方法,就能得到一個文檔的對象, 可以傳入一段字符串或一個文件句柄

2.如果我們調(diào)用BeautifulSoup這個類的時候,不帶"html.parser"參數(shù),,這時候會有個waring的,,下圖紅色框框區(qū)域給出了建議。

3.html.parser這個是python庫里面自帶的解析器,,無需安裝,。

4.prettify()這個方法是把文件解析成html格式,用html的標準格式輸出(有縮進的)

三,、對象的種類

1.Beautiful Soup將復(fù)雜HTML文檔轉(zhuǎn)換成一個復(fù)雜的樹形結(jié)構(gòu),每個節(jié)點都是Python對象,所有對象可以歸納為4種:

Tag :   標簽對象,,如:<p class="title"><b>yoyoketang</b></p>,這就是一個標簽

NavigableString :字符對象,,如:這里是我的微信公眾號:yoyoketang

BeautifulSoup   :就是整個html對象

Comment    :注釋對象,,如:!-- for HTML5 --,它其實就是一個特殊NavigableString

2.弄清楚了這四個對象,,后面所有的操作但是基于這四個(其實最后面一個comment可以忽略,,幾乎用不到)

四、Tag對象

1.html里面識別一個tag,,其實一般像這種:

<p class="title"><b>yoyoketang</b></p>

<b>yoyoketang</b>

<head><title>yoyo ketang</title></head>

以上這些都是tag,很明顯都是以<xx 開頭</xx> 結(jié)尾這種,,就是一個完整的tag

2.通過標簽的名稱,來獲取tag對象

3.如果有多個相同的標簽名稱,,返回的是第一個

五,、Tag對象:name屬性

1.tag的name屬性,每一個tag都有name屬性,,用.name獲取,,如上面的三個name屬性分別為p,b,head。也就是<xx開頭的,,這里的xx就是它的name屬性

2.html是一個樹狀結(jié)構(gòu)的,,每個tag都有屬性,整個html對象也有name屬性,,它的屬性是:[document]

六,、Tag對象:Attributes

1.tag.attrs可以打印出所有的屬性,可以看出是個字典格式的

2.那么獲取其中的某一個屬性,,就跟操作字典一樣,,如:tag["href"]

3.由于class屬性一般可以為多個,中間空格隔開,,所以class屬性獲取的是一個list類型:[u'sister']

4.tag.string,,這里Tag對象變成NavigableString對象了,呵呵小伙伴們要懵逼了吧,。其實打印出來就是一個字符串,。

七,、發(fā)福利

1.爬糗事百科首頁的段子

# coding:utf-8
from bs4 import BeautifulSoup
import requests

r = requests.get("https://www./")
qiubai = r.content
soup = BeautifulSoup(qiubai, "html.parser")
duanzi = soup.find_all(class_="content")
for i in duanzi:
    # tag的 .contents 屬性可以將tag的子節(jié)點以列表的方式輸出
    duan = i.span.contents[0]  # 取第一個
    print duan

python接口自動化QQ群:226296743

《selenium高級自動化》已出書,可以購買正版(點左下角閱讀原文)https://yuedu.baidu.com/ebook/0f6a093b7dd184254b35eefdc8d376eeaeaa17e3

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多