黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python網絡爬蟲——bs4基本用法

系統 2336 0

使用流程:

  -導包:from bs4 import BeautifulSoup

  - 使用方式:可以將一個html文檔,轉化為BeautifulSoup對象,然后通過對象的方法或屬性去查找指定的節點內容。

    (1)轉化本地文件:

      - soup = BeautifulSoup(open(‘本地文件’),‘lxml’)

    (2)轉化網絡文件(與requests配合):

      - page_text = requests.get(url=url,headers=headers).text

      -?soup = BeautifulSoup(page_text,'lxml')

   ?。?)打印soup對象顯示內容為html文件中的內容

基礎語法:

? ?。?)根據標簽名查找

    - soup.a  只能找到第一個符合要求的標簽

 ?。?)獲取屬性

    - soup.a.atters  獲取a所有的屬性和屬性值,返回一個字典

    - soup.a.atters['href']  獲取href屬性

    - soup.a['href']  上面的簡寫

 ?。?)***獲取內容

    - soup.a.string  獲取 之間的文本內容(a不含子標簽)

      - soup.a['href'].string  獲取a標簽中href的內容

    - soup.a.text   獲取 之間包括子標簽的所有文本內容

    - soup.a.get_text()  同上面用法

    【注意】如果標簽里還有標簽,那么string獲取到的結果為None,其他兩個可以獲取文本內容

 ?。?)***find:找到第一個符合要求的標簽

    - soup.find('a')  找到第一個符合要求的標簽(a標簽)

    - soup.find('a',title='xxx')?  找到第一個title=‘xxx’的a標簽

    - soup.find('a',alt='xxx')  同上

    - soup.find('a',class_='xxx')  同上,【注意】class后的_

    - soup.find('a',id='xxx')  同上

 ?。?)***find_all:找到所有符合要求的標簽

    - soup.find_all('a')  找到所有a標簽

    - soup.find(['a','b'])  找到所有a和b標簽

    - soup.find_all('a',limit=2)  限制前兩個

 ?。?)***根據選擇器選擇指定的內容

      select:soup.select('.feng')  選擇class屬性值為feng的所有標簽

    - 常見的選擇器:標簽選擇器(a)、類型選擇器(.)、id選擇器(#)、層級選擇器

      - 層級選擇器:

        div > p > a > .lala  只能選擇最下面一級 class=lala的子標簽

        div .dudu  div下面clas=dudu的所有字標簽

    【注意】?select選擇器返回永遠是列表,需要通過下表提取指定的對象

實例:使用bs4實現將詩詞名句網站中三國演義小說的每一章的內同爬取到本地磁盤進行存儲

            
              import
            
            
               requests

            
            
              from
            
             bs4 
            
              import
            
            
               BeautifulSoup

              
#獲得url url
= ' http://www.shicimingju.com/book/sanguoyanyi.html ' headers = { ' User-Agent ' : '' }

#獲取網頁并轉換成BeautifulSoup對象 page_text
= requests.get(url=url,headers= headers).text soup = BeautifulSoup(page_text, ' lxml ' )

#選取class=book-mulu的div標簽 >下的ul標簽 >下的li標簽 >下的所有a標簽 a_list
= soup.select( ' .book-mulu>ul>li>a ' )

#創建sanguo.txt文件 fp
= open( ' sanguo.txt ' , ' w ' ,encoding= ' utf-8 ' )

#遍歷所有a標簽
for a in a_list:
  #獲取a標簽文本 title
= a.string
  #獲取a標簽中href屬性的文本信息,并組成url detail_url
= ' http://www.shicimingju.com ' + a[ ' href ' ]
  #獲取新url內的頁面信息 detail_page_text
= requests.get(url=detail_url,headers= headers).text #將新url網頁創建為BeautifulSoup對象 title_soup = BeautifulSoup(detail_page_text, ' lxml ' )
  #獲取新url內class='chapter_content'的div標簽的文本信息 content
= title_soup.find( ' div ' ,class_= ' chapter_content ' ).text
  #將標題與正文間加入\n并寫入sanguo.txt文件 fp.write(title
+ ' \n ' + content)
  #每一章節下載完畢都打印成功
print (title, ' 下載完畢 ' ) print ( ' over ' ) fp.close()

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!?。?/p>

發表我的評論
最新評論 總共0條評論