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

urllib是python3.x中提供的一系列操做的URL的庫,它能夠輕鬆的模擬用戶使用瀏覽器訪問網頁.python

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

一、安裝python最新安裝包3.5.2瀏覽器

  下載地址:https://www.python.org/服務器


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

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

  

二、安裝urlliburl

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

  顯示以下:沒有出現錯誤信息則安裝成功命令行

  

三、安裝BeautifulSoupcode

  在cmd中輸入:pip install beautifulsoup4

  

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

  

四、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'))

 五、beautifulSoup使用簡介

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

相關文章
相關標籤/搜索