webbrowser、requests、Beautiful Soup學習

第11章:從web抓取信息


下面的幾個模塊,讓在Python中抓取網頁變得很容易:


webbrowser:是從Python自帶的,打開瀏覽器獲取指定頁面


requests:從因特網上下載文件和網頁


Beautiful Soup:解析HTML,即網頁編寫的格式


selenium:啓動並控制一個Web瀏覽器,selenium能夠填寫表單,並模擬鼠標在這個瀏覽器中點擊






11、2利用requests模塊從web下載文件


requests.get()函數接受一個要下載的URL字符串,返回的是Response對象


通過Response對象的status_code屬性,判斷是否請求成功
Response.status_code == requests.codes.ok,True請求成功


另一種方法是在Response對象調用raise_for_status()方法,如果下載出錯,將拋出異常,如果下載成功,就什麼都不做


Response對象的text屬性是下載的內容


11.3、利用BeautifulSoup模塊解析HTML


一:
首先通過requests模塊下載網頁,
然後利用BeautifulSoup模塊解析HTML


>>> import requests,bs4
>>> res =  requests.get('http://book.zongheng.com/chapter/457720/7629918.html')#下載主頁,返回Response對象
>>> res.raise_for_status()#判斷是否下載成功
>>> noStarchSoup = bs4.BeautifulSoup(res.text)#將Response對象的text屬性傳遞給 bs4.BeautifulSoup(),將返回的BeautifulSoup對象存在變量中




二:
也可以像bs4.BeautifulSoup()傳遞一個File對象,從硬盤加載一個HTML文件


>>> exampleFile = open('C:\\Users\\Nick\\Desktop\\python\\drawing\\2\\fangdongzhuye.html','rb')#以rb模式打開文件
>>> exampleSoup = bs4.BeautifulSoup(exampleFile)
>>> type(exampleSoup)
<class 'bs4.BeautifulSoup'>


備註:::
open()函數打開方式:
  “r”開放閱讀(默認)
  ' w '開放寫作,首先刪除文件
  “x”獨家創造開放,失敗如果文件已經存在
  “a”開放寫作,附加文件的末尾,如果它的存在
  “b”二元模式
  “t”文本模式(默認)
  “+”打開磁盤文件更新(閱讀和寫作)






BeautifulSoup對象上調用select()方法查找指定元素,返回Tag對象的列表
>>> elems = noStarchSoup.select('div#chapterContent')
>>> type(elems)
<class 'list'>
>>> len(elems)
1
>>> elems[0].getText()#返回匹配的指定內容
>>> elems[0].attrs
{'id': 'chapterContent', 'class': ['content'], 'itemprop': 'acticleBody'}


Tag對象的get()方法很容易從元素中獲取屬性值
發佈了32 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章