python+urllib+beautifulSoup實現一個簡單的爬蟲


urllib是python3.x中提供的一系列操作的URL的庫,它可以輕松的模擬用戶使用瀏覽器訪問網頁.

Beautiful Soup 是一個可以從HTML或XML文件中提取數據的Python庫.它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間.

1、安裝python最新安裝包3.5.2

  下載地址:https://www.python.org/


  注:安裝的時候注意勾選添加到PATH(系統環境變量)中

  驗證安裝是否成功: 在命令行cmd中輸入python,如果進入到python的編輯環境,則安裝成功。

  

2、安裝urllib

  在python命令行中輸入:from urllib.request import urlopen

  顯示如下:沒有出現錯誤信息則安裝成功

  

3、安裝BeautifulSoup

  在cmd中輸入:pip install beautifulsoup4

  

  驗證是否裝成功:form bs4 import BeautifulSoup  如果沒有報錯就是安裝成功

  

4、urllib的用法介紹

 (1)使用步驟

  • 導入urllib庫的request模塊 from urllib import request
  • 請求URL req = request.Request(URL)
  • 設置請求頭 req.add_header(key,value)
  • 使用響應對象輸出數據print(resp.read().decode('utf-8'))
from urllib import request

req = request.Request("http://www.baidu.com")

req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0")

resp = request.urlopen(req)

print(resp.read().decode("utf-8"))

這里我用sublime Text 測試:可以看到百度首頁的數據是可以被獲取下來的。

  

 (2)post請求

  • 導入urllib庫下面的parse: from urllib import parse
  • 使用urlencode生成post數據

         postData = parse.urlencode([

           (key1,val1),

           (key2,val2),

           (key3,val3)

  ])

  • 使用postData發送POST請求 request.urlopen(req,data = postData.encode('utf-8'))
  • 得到請求狀態 resp.status
  • 得到服務器類型 resp.reason

       

from urllib.request import urlopen
from urllib.request import Request
from urllib import parse

req = Request('http://huochepiao.114piaowu.com/train/ydTrainZdz_searchAdapter.action')

postData = parse.urlencode({
    'fromStation':'上海',
    'godateStr':'2016-09-07',
    'searchType':0,
    'toStation':'廣州'
}).encode('utf-8')

req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0")

resp = urlopen(req,data = postData)

print(resp.read().decode('utf-8'))

 5、beautifulSoup使用簡介

  http://beautifulsoup.readthedocs.io/zh_CN/latest/#id20


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM