欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python利用beautifulSoup實現爬蟲

 更新時間:2014年09月29日 00:27:04   投稿:mdxy-dxy  
這篇文章主要介紹了python利用beautifulSoup實現爬蟲,需要的朋友可以參考下

以前講過利用phantomjs做爬蟲抓網頁 http://www.dbjr.com.cn/article/55789.htm 是配合選擇器做的

利用 beautifulSoup(文檔 :http://www.crummy.com/software/BeautifulSoup/bs4/doc/)這個python模塊,可以很輕松的抓取網頁內容

# coding=utf-8
import urllib
from bs4 import BeautifulSoup

url ='http://www.baidu.com/s'
values ={'wd':'網球'}
encoded_param = urllib.urlencode(values)
full_url = url +'?'+ encoded_param
response = urllib.urlopen(full_url)
soup =BeautifulSoup(response)
alinks = soup.find_all('a')

上面可以抓取百度搜出來結果是網球的記錄。

beautifulSoup內置了很多非常有用的方法。

幾個比較好用的特性:

構造一個node元素

復制代碼 代碼如下:

soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
tag = soup.b
type(tag)
# <class 'bs4.element.Tag'>

屬性可以使用attr拿到,結果是字典

復制代碼 代碼如下:

tag.attrs
# {u'class': u'boldest'}

或者直接tag.class取屬性也可。

也可以自由操作屬性

tag['class'] = 'verybold'
tag['id'] = 1
tag
# <blockquote class="verybold" id="1">Extremely bold</blockquote>

del tag['class']
del tag['id']
tag
# <blockquote>Extremely bold</blockquote>

tag['class']
# KeyError: 'class'
print(tag.get('class'))
# None

還可以隨便操作,查找dom元素,比如下面的例子

1.構建一份文檔

html_doc = """
&lt;html&gt;&lt;head&gt;&lt;title&gt;The Dormouse's story&lt;/title&gt;&lt;/head&gt;

&lt;p&gt;&lt;b&gt;The Dormouse's story&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Once upon a time there were three little sisters; and their names were
&lt;a  id="link1"&gt;Elsie&lt;/a&gt;,
&lt;a  id="link2"&gt;Lacie&lt;/a&gt; and
&lt;a  id="link3"&gt;Tillie&lt;/a&gt;;
and they lived at the bottom of a well.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;
"""

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)

2.各種搞

soup.head
# <head><title>The Dormouse's story</title></head>
soup.title
# <title>The Dormouse's story</title>
soup.body.b
# <b>The Dormouse's story</b>
soup.a
# <a class="sister"  id="link1">Elsie</a>
soup.find_all('a')
# [<a class="sister"  id="link1">Elsie</a>,
# <a class="sister"  id="link2">Lacie</a>,
# <a class="sister"  id="link3">Tillie</a>]
head_tag = soup.head
head_tag
# <head><title>The Dormouse's story</title></head>

head_tag.contents
[<title>The Dormouse's story</title>]

title_tag = head_tag.contents[0]
title_tag
# <title>The Dormouse's story</title>
title_tag.contents
# [u'The Dormouse's story']
len(soup.contents)
# 1
soup.contents[0].name
# u'html'
text = title_tag.contents[0]
text.contents

for child in title_tag.children:
  print(child)
head_tag.contents
# [<title>The Dormouse's story</title>]
for child in head_tag.descendants:
  print(child)
# <title>The Dormouse's story</title>
# The Dormouse's story

len(list(soup.children))
# 1
len(list(soup.descendants))
# 25
title_tag.string
# u'The Dormouse's story'

相關文章

  • 淺談對python中if、elif、else的誤解

    淺談對python中if、elif、else的誤解

    這篇文章主要介紹了淺談對python中if、elif、else的誤解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 利用Python計算質數與完全數的方法實例

    利用Python計算質數與完全數的方法實例

    這篇文章主要介紹了利用Python計算質數與完全數的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 淺談Python traceback的優(yōu)雅處理

    淺談Python traceback的優(yōu)雅處理

    這篇文章主要介紹了淺談Python traceback的優(yōu)雅處理,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Python利用memory_profiler實現內存分析

    Python利用memory_profiler實現內存分析

    memory_profiler是第三方模塊,用于監(jiān)視進程的內存消耗以及python程序內存消耗的逐行分析。本文將利用memory_profiler實現內存分析,需要的可以參考一下
    2022-10-10
  • Python根據成績分析系統(tǒng)淺析

    Python根據成績分析系統(tǒng)淺析

    在本篇文章里小編給大家分享了關于Python根據成績分析是否繼續(xù)深造一個系統(tǒng)的相關知識點,有需要的朋友們學習下。
    2019-02-02
  • Python 面向對象靜態(tài)方法、類方法、屬性方法知識點小結

    Python 面向對象靜態(tài)方法、類方法、屬性方法知識點小結

    這篇文章主要介紹了Python 面向對象靜態(tài)方法、類方法、屬性方法,總結分析了Python 面向對象程序設計中靜態(tài)方法、類方法、屬性方法相關概念、知識點、操作技巧與使用注意事項,需要的朋友可以參考下
    2020-03-03
  • python基礎操作列表推導式

    python基礎操作列表推導式

    列表推導式形式較為簡潔,是利用其它列表創(chuàng)建新列表的一種方式,它的工作方式類似于for循環(huán),也可以嵌套if條件判斷語句,需要的朋友可以參考下
    2023-04-04
  • 用Python去除圖像的黑色或白色背景實例

    用Python去除圖像的黑色或白色背景實例

    今天小編就為大家分享一篇用Python去除圖像的黑色或白色背景實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python操作 hbase 數據的方法

    python操作 hbase 數據的方法

    下面小編就為大家?guī)硪黄猵ython操作 hbase 數據的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 利用Python實現最小二乘法與梯度下降算法

    利用Python實現最小二乘法與梯度下降算法

    這篇文章主要介紹了利用Python實現最小二乘法與梯度下降算法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02

最新評論