<button id="2ddn7"><acronym id="2ddn7"></acronym></button>

<button id="2ddn7"><acronym id="2ddn7"></acronym></button>

  • <button id="2ddn7"><object id="2ddn7"></object></button>
      1. <s id="2ddn7"></s>
        更多課程 選擇中心


        Python培訓

        400-111-8989

        Python基礎爬蟲入門教程,新人必學!

        • 發布:Python培訓
        • 來源:熱門文章
        • 時間:2020-11-11 11:16

        本文著重點在于教新手如何學習爬蟲,并且會以外行人的思維進行形象地講解。最近我一兄弟想學,我就想寫個教學給他,然后想不如分享到網絡上,給熱愛學習的人們一起學習探討。

        環境安裝

        python3.7.1

        pip install requests

        pip install beautifulsoup4

        pip install lxml

        技術講解

        requests庫

        requests一般用于發起http請求,并且拿到請求的結果。http常用的請求有兩種,GET和POST,爬蟲主要用的是GET請求。

        在不懂http,https和dns,TCP/IP等協議的情況下,我直接打個比方來解釋一下什么是GET請求,以360瀏覽器為例,人在360瀏覽器輸入www.tedu.cn,然后敲擊enter鍵,直到頁面出現,整個過程,我們可以抽象為我們向百度服務器發起的一次GET請求。

        如何使用requests庫來模擬瀏覽器的行為來獲取頁面內容呢?

        示例代碼如下

        import requests

        web = requests.get('https://www.baidu.com') #向百度發起一次get請求,返回請求結果的實體類

        print(web.status_code) #請求返回的狀態碼,200是OK,404是頁面不存在,500是錯誤,更多自己百度搜索

        print(type(web.content)) #頁面內容的數據類型是bytes,因此需要解碼

        print(type(web.content.decode()))

        print(web.content.decode()) #解碼之后,得到的頁面內容是結構化的字符串

        這樣看起來,我們獲取到的頁面內容不是我們在瀏覽器看到的圖形化界面,而是字符串,更像是一些代碼。如果你學過html和css那就不用多說了。沒學過也不要緊,現在可以簡單學一下,也就花幾分鐘了解一下就夠用了。

        html是一種標記語言,可以被瀏覽器執行,然后呈現出可視化的圖形界面。如果你把web.content.decode()這一串字符串保存在test.html里,然后雙擊打開,你會看到圖形化界面的,只不過有些圖片可能顯示不了,這里就不細說了。

        html其實很好理解,不要想得太復雜,就是一段有規律的格式化的文本。

        其基本格式就是

        <html>

        <head>...</head>

        <body>...<body>

        <script>...</script>

        <style>...</style>

        </html>

        html文本的標簽一般都是成雙成對,有始有終的,比如<body>和</body>是一隊,千萬不能拆散,拆散就亂套了。少數除外比如<br>是換行用的,可以不用配對。

        這里我們主要講body標簽,網頁的主要內容都是在這個標簽里顯示的,比如標題,段落,圖片等

        在test.html里我們寫入一下代碼并且保存。

        <html>

        <body>

        <h1>我的網站</h1>

        <p>這是我的網站</p>

        </body>

        </html>

        beautifulsoup4庫

        bs4(簡稱)庫是用于解析格式化文本,提取數據用的庫。

        我們利用requests庫的get函數拿到網頁的內容是一段格式化的字符串,接下來就可以用bs4來解析它。

        解析的示例代碼如下

        from bs4 import BeautifulSoup

        html = '''<html>

        <body>

        <h1>我的網站</h1>

        <p>這是我的網站</p>

        <body>

        </html>''' #從網頁拿到html的格式化的字符串,保存到html里

        soup = BeautifulSoup(html, 'lxml') #使用lxml解析器來解析文本,html和xml格式是類似的

        print(soup.find_all('h1')) #使用find_all函數來找所有的h1標簽,返回的結果是數組

        print(soup.find_all('p')) #找所有的p標簽,返回的結果是數組

        更復雜一點的,比如

        from bs4 import BeautifulSoup

        html = '''<html>

        <body>

        <h1>我的網站</h1>

        <p>這是我的網站</p>

        <div class='test-item'>

        測試1

        </div>

        <div class='test-item'>

        測試2

        </div>

        <body>

        </html>'''

        soup = BeautifulSoup(html, 'lxml')

        div_tags = soup.find_all(name='div', attrs={'class': 'test-item'})

        for tag in div_tags:

        print(type(tag))

        print(tag)

        print(tag.string)

        print(tag.attrs, '\n')

        注意,tag保存的不是字符串,而是bs4模塊中的一個標簽實體類,我們主要需要知道它的attrs屬性和string屬性,方便我們拿到一些我們想要的文本和信息,比如a標簽的href屬性就保存在attrs里。

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:新人自學Python有哪些快速上手的方法?
        下一篇:最適合學Python的五類人都有誰?

        為什么有人學完Python找不到工作?

        Python 到底牛在哪?

        編程入門語言,為什么建議學Python?

        想進BAT?學python該掌握哪些“技術點”?

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        黑龍江省

        吉林省

        河北省

        湖南省

        貴州省

        云南省

        廣西省

        海南省

        青青青草网站免费观看|青青青视频在线观看 超真实强奷视频在线看 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>