所謂網路爬蟲,通俗的講,就是通過向我們需要的url發出http請求,獲取該url對應的http報文主體內容,之後提取該報文主體中我們所需要的資訊。
下面是乙個簡單的爬蟲程式
http基本知識
當我們通過瀏覽器訪問指定的url時,需要遵守http協議。本節將介紹一些關於http的基礎知識。
http基本流程
我們開啟乙個網頁的過程,就是一次http請求的過程。這個過程中,我們自己的主機充當著客戶機的作用,而充當客戶端的是瀏覽器。我們輸入的url對應著網路中某台伺服器上面的資源,伺服器接收到客戶端發出的http請求之後,會給客程式設計客棧戶端乙個響應,響應的內容就是請求的url對應的內容,當客戶端接收到伺服器的響應時,我們就可以在瀏覽器上看見請求的資訊了。
我們可以通過python的requests模組很方便的發起http請求。requests模組是第三方模組,安裝完成之後直接import就能使用。下面介紹一些簡單的用法
發起請求
import requests
# 請求的首部資訊
headers =
# 例子的url
url = '' # 虎撲nba新聞
# 利用requests物件的get方法,對指定的url發起請求
# 該hhhysxrn方法會返回乙個response物件
res = requests.get(url, headers=headers)
# 通過response物件的text方法獲取網頁的文字資訊
print(r
上面的**中,我們向虎撲的伺服器傳送了乙個get請求,獲取虎撲首頁的nba新聞。headers引數指的是http請求的首部資訊,我們請求的url對應的資源是虎撲nba新聞的首頁。獲取到對應的網頁資源之後,我們需要對其中的資訊進行提取。
通過beautifulsoup提取網頁資訊
beautifulsoup庫提供了很多解析html的方法,可以幫助我們很方便地提取我們需要的內容。我們這裡說的beautifulsoup指的是bs4。當我們成功抓取網頁之後,就可以通過beautifulsoup物件對網頁內容進行解析。在beautifulsoup中,我們最常用的方法就是find()方法和find_all()方法,借助於這兩個方法,可以輕鬆地獲取到我們需要的標籤或者標籤組。關於其他的方法,可以參考bs4的官方文件:beautifulsoup
find()方法和find_all()方法的用法如下
find(name , attrs , recursive , string , **kwargs )
# find_all()方法將返回文件中符合條件的所有tag,
find_all(name , attrs , recursive , string , **kwargs )
from bs4 import beautifulsoup
# beautifulsoup物件接收html文件字串
# lxml是html解析器
soup = beautiful(res.text, 'lxml')
# 下面的方法找出了所有class為hello的span標籤
# 並將所有的結果都放入乙個list返回
tags = soup.find_all('span', )
例項擴充套件:
例項一:
#第一種方法
import urlli #將urllib2庫引用進來
response=urllib2.urlopen("") #呼叫庫中的方法,將請求回應封裝到response物件中
html=response.read() #呼叫response物件的read()方法,將回應字串賦給hhtml變數
print html #列印出來
例項二:
#第二中方法
import urllib2
req=urllib2.request("")
response=urllib2.urlopen(req)
html = response.read()
print html
python做爬蟲難嗎 python寫爬蟲難嗎
所謂網路爬蟲,通俗的講,就是通過向我們需要的url發出http請求,獲取該url對應的http報文主體內容,之後提取該報文主體中我們所需要的資訊。下面是乙個簡單的爬蟲程式 http基本知識 當我們通過瀏覽器訪問指定的url時,需要遵守http協議。本節將介紹一些關於http的基礎知識。http基本流...
用python寫爬蟲(一)初識爬蟲
爬蟲又被稱之為網路蜘蛛 網路機械人等,簡單來說就是模擬客戶端傳送網路請求,接收請求響應,按照一定的規則自動的抓取網際網路資訊的程式。1.從個人角度來說,爬蟲可以做我們的生活助手。2.從商業角度來說,爬蟲能實現巨大的商業價值。網路爬蟲根據系統結構和開發技術大致可以分為四種型別 通用網路爬蟲 聚焦網路爬...
linux下用python寫簡單的爬蟲程式
簡述下這個爬蟲程式的基本原理 geturl.py coding utf 8 import urllib defgethtml url page urllib.urlopen url html page.read return html html gethtml print html 新建乙個getu...