真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python爬蟲之BeautifulSoup庫的基本使用

import urllib2
url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {}
values['name'] = 'Michael Foord'
values['location'] = 'Northampton'
values['language'] = 'Python'

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、成都網(wǎng)站制作、紅崗網(wǎng)絡(luò)推廣、微信小程序、紅崗網(wǎng)絡(luò)營銷、紅崗企業(yè)策劃、紅崗品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供紅崗建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

data = urllib.urlencode(values) #數(shù)據(jù)進行編碼生成get方式的請求字段
req = urllib2.Request(url,data) #作為data參數(shù)傳遞到Request對象中 POST方式訪問
response = urllib2.urlopen(req) 返回一個類文件對象
the_page = response.read()
soup = BeautifulSoup(the_page,"html.parser") 通過類文件the_page 創(chuàng)建beautifulsoup對象,soup的內(nèi)容就是頁面的源碼內(nèi)容
soup.prettify() 格式化后soup內(nèi)容
構(gòu)造好BeautifulSoup對象后,借助find()和find_all()這兩個函數(shù),可以通過標簽的不同屬性輕松地把繁多的html內(nèi)容過濾為你所想要的
url_name = line.get('href') 獲取a標簽的url信息
Title = line.get_text().strip() 獲取a標簽的文本內(nèi)容
Beautiful Soup支持Python標準庫中的HTML解析器
BeautifulSoup(markup, “html.parser”)
BeautifulSoup(markup, “l(fā)xml”)
BeautifulSoup(markup, “html5lib”)
Beautiful Soup將復(fù)雜HTML文檔轉(zhuǎn)換成一個復(fù)雜的樹形結(jié)構(gòu),每個節(jié)點都是Python對象
soup.p.attrs 獲取標簽p的屬性信息
find_all( name , attrs , recursive , text , **kwargs )

find_all() 方法搜索當前tag的所有tag子節(jié)點,并判斷是否符合過濾器的條件
1.name 參數(shù)
傳字符串:soup.find_all('b') 查找文檔中所有的標簽
傳正在表達式 import re for tag in soup.find_all(re.compile("^b")) 正則表達式的 match() 來匹配內(nèi)容
傳列表 soup.find_all(["a", "b"])
傳True for tag in soup.find_all(True) 查找到所有的tag
傳方法
def has_class_but_no_id(tag):
return tag.has_attr('class') and not tag.has_attr('id')
soup.find_all(has_class_but_no_id('p'))
2.keyword 參數(shù)
soup.find_all(id='link2')
soup.find_all(href=re.compile("elsie"))
soup.find_all(href=re.compile("elsie"), id='link1')
soup.findall("a", class="sister") 用 class 過濾, class 是 python 的關(guān)鍵詞,加個下劃線就可以
data_soup.find_all(attrs={"data-foo": "value"}) 特殊屬性用attrs 組成字典進行查詢

3.text 參數(shù)
soup.find_all(text="Elsie")
soup.find_all(text=["Tillie", "Elsie", "Lacie"])
soup.find_all(text=re.compile("Dormouse"))
4.limit 參數(shù)
soup.find_all("a", limit=2)
5.recursive 參數(shù)
soup.html.find_all("title", recursive=False)

find() 與find_all()的區(qū)別是,find()直接返回結(jié)果
find_all() 和 find() 只搜索當前節(jié)點的所有子節(jié)點,孫子節(jié)點等. find_parents() 和 find_parent() 用來搜索當前節(jié)點的父輩節(jié)點,搜索方法與普通tag的搜索方法相同,搜索文檔搜索文檔包含的內(nèi)容
find_next_siblings() 方法返回所有符合條件的后面的兄弟節(jié)點,find_next_sibling() 只返回符合條件的后面的第一個tag節(jié)點
find_previous_siblings() 方法返回所有符合條件的前面的兄弟節(jié)點, find_previous_sibling() 方法返回第一個符合條件的前面的兄弟節(jié)點
find_all_next() 方法返回所有符合條件的節(jié)點, find_next() 方法返回第一個符合條件的節(jié)點
find_all_previous() 方法返回所有符合條件的節(jié)點, find_previous()方法返回第一個符合條件的節(jié)點

CSS選擇器
1.通過標簽名查找
print soup.select('title')
print soup.select('a')
2.通過類名查找
print soup.select('.sister')
3.通過 id 名查找
print soup.select('#link1')
4.組合查找
print soup.select('p #link1')
5.屬性查找
print soup.select('a[class="sister"]')
print soup.select('a[)
print soup.select('p a[)
select 方法返回的結(jié)果都是列表形式,可以遍歷形式輸出,然后用 get_text() 方法來獲取它的內(nèi)容
soup.a.attrs) # 獲取a標簽的所有屬性(注意到格式是字典)


新聞名稱:python爬蟲之BeautifulSoup庫的基本使用
URL地址:http://weahome.cn/article/ppjdpe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部