Python爬蟲常用模塊,BeautifulSoup筆記

来源:http://www.cnblogs.com/PythonChan/archive/2016/07/18/5683169.html
-Advertisement-
Play Games

這是我以前的BS4筆記,交流請聯繫 QQ 328123440 ...


import urllib  
import urllib.request as request
import re
from bs4 import *

#url = 'http://zh.house.qq.com/'
url = 'http://www.0756fang.com/'
html = request.urlopen(url).read().decode('utf-8')

soup = BeautifulSoup(html,"html.parser")
print(soup.head.meta['content'])#輸出所得標簽的‘’屬性值
print(soup.span.string);print(soup.span.text)#兩個效果一樣,返回標簽的text

#name屬性是‘’的標簽的<ResultSet>類,是一個由<Tag>組成的list
print(soup.find_all(attrs={'name':'keywords'}))
print(soup.find_all(class_='site_name'))#class屬性是‘’的<Tag>的list,即<ResultSet>
print(soup.find_all(class_='site_name')[0])#這是一個<Tag>

print(soup.find(attrs={'name':'keywords'}))#name屬性是‘’的標簽的<Tag>類
print(soup.find('meta',attrs={'name':'keywords'}))#name屬性是‘’的meta標簽的<Tag>類
print(soup.find('meta',attrs={'name':'keywords'})['content'])#<Tag類>可直接查屬性值
#配合re模塊使用,可以忽略大小寫
#如下麵例子,可以找到name屬性為keywords,KEYWORDS,KeyWORds等的meta標簽
print(soup.find('meta',attrs={'name':re.compile('keywords',re.IGNORECASE)}))

'''-------------------------------------------------------------------------'''
'''----------------------------修改BeautifulSoup—----------------------------'''
'''-------------------------------------------------------------------------'''
soup.find(attrs={'name':'keywords'}).extract#調用這個方法,可以刪除這一個標簽
soup.title.name='ppp'#可以把Tag的名字<title>改成<ppp>

#可以使用append(),insert(),insert_after()或者insert_before()等方法來對新標簽進行插入。
Tag1 = a.new_tag('li',class_='123')'''創造一個Tag'''
a.title.append(Tag1)#把Tag1添加為name是title的Tag的最後一個【子節點】,沒有換行
      #.insert(0,Tag1)----這裡用insert的話,第一個參數可以控制所添加【子節點】的先後位置
      #.insert_after(Tag1)---和insert_before一樣,添加為Title的【兄弟節點】

soup.head.meta['content']='隨便輸入,可以添加(或更改)這個Tag的content屬性(值)'
del soup.head.meta['content']#這個語法可以直接刪除這個Tag的content屬性


soup.li.clear#調用方法會清除所有li標簽的text
soup.title.string='用這個方法可以修改title標簽的內容'#慎用,只用於最子孫最小的節點,用於父節點會清空子節點
soup.div.append('放在div子節點位置的 最後append最後,是標簽內容')
soup.div.insert(0,'放在div子節點位置的 最前insert【0】最前,是標簽內容'')

  這是我以前的BS4筆記,交流請聯繫 QQ 328123440


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!-- tabsets --> $(document).ready(function () { window.buildTabsets("TOC"); }); <!-- code folding --> dataTable wangchao 2016年7月18日 1.生成一個data.table對 ...
  • Set介面Set不允許包含相同的元素,如果試圖把兩個相同元素加入同一個集合中,add方法返回false。(無序,不可重覆 )Set判斷兩個對象相同不是使用==運算符,而是根據equals方法。也就是說,只要兩個對象用equals方法比較返回true,Set就不 會接受這兩個對象。 HashSetHa ...
  • ...
  • 在做數據採集時經常要使用到curl+正則的方式採集需要的數據 根據自己的工作經驗 把自己寫的一些常用自定義函數 拿到博客園來分享 如果有寫得不恰當的地方 請多多指教 這是一個系列 沒辦法在一兩天寫完 所以一篇一篇的發佈 大致大綱: 1.curl數據採集系列之單頁面採集函數get_html 2.cur ...
  • 運算符重載的規則如下: 1、C++中的運算符除了少數幾個之外,全部可以重載,而且只能重載C++中已經有的運算符。 2、重載之後運算符的優先順序和結合性都不會改變 3、運算符重載是針對新類型數據的實際需要,對原有運算符進行適當的改造,一般來講,重載的功能應當與原有功能相類似,不能改變原運算符的操作對象個 ...
  • 一.運算符:優先順序,結合性 一句話總結:點號自反非,算關邏賦移。 二.java關鍵字 instanceof 實例 volatile 易失 super 父類,超類 transient 短暫 synchronized 線程,同步 strictfp 嚴格,精準 package 包 throws 聲明一個異 ...
  • 一、表單標簽庫 1.1、簡介 從Spring2.0起就提供了一組全面的自動數據綁定標簽來處理表單元素。生成的標簽相容HTML 4.01與XHTML 1.0。表單標簽庫中包含了可以用在JSP頁面中渲染HTML元素的標簽。表單標記庫包含在spring-webmvc.jar中,庫的描述符稱為spring- ...
  • python之線程、進程和協程 目錄: 引言 一、線程 1.1 普通的多線程 1.2 自定義線程類 1.3 線程鎖 1.3.1 未使用鎖 1.3.2 普通鎖Lock和RLock 1.3.3 信號量(Semaphore) 1.3.4 事件(Event) 1.3.5 條件(condition) 1.3 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...