python爬蟲 2 靜態網頁抓取

2021-08-21 23:46:34 字數 1932 閱讀 6567

獲取響應內容:

import requests

r = requests.get('')

print("文字編碼:",r.encoding) #伺服器使用的文字編碼

print("響應狀態碼:",r.status_code) #檢測響應的狀態碼,200為成功,4xx為客戶端錯誤,5xx為伺服器錯誤響應

print("字串方式的響應體:",r.text) #伺服器響應的內容

另外還有r.content是位元組方式的響應體,會自動解碼gzip和deflate編碼的響應資料;r.json()是requests中內建的json解碼器。

定製requests:

為了請求特定資料需要在url查詢字串中加入某些資料,一般跟在乙個問號後面,並且以鍵/值的形式放在url中:

import requests

key_dict =

r = requests.get('',params = key_dict)

print("url已經正確編碼:",r.url)

print("字串方式的響應體:\n",r.text)

#url已經正確編碼:

#字串方式的響應體:

#  "args":

r = requests.post('',data = key_dict)

print(r.text)

超時:

可以在requests的timeout引數中設定:

import requests

link = ''

r = requests.get(link,timeout = 0.001)

爬蟲實踐:top250電影資料

目標**:

1、分析:

每頁有25個電影,第二頁時位址變為?start=25,第三頁strat=50,可見每過一頁就在start引數上加25

2、拿到網頁全部內容:

import requests

def get_movies():

headers = {

'host':"movie.douban.com"

for i in range(0,10):

link = '?start=' + str( i * 25)

r = requests.get(link,headers = headers,timeout = 10)

print(str(i + 1),"頁響應狀態碼:",r.status_code)

print(r.text)

get_movies()

3、分析後取出:

import requests

import re

def get_movies():

headers = {

'host':"movie.douban.com"

movie_list =

root_pattern = '([\s\s]*?)

'name_pattern = '([\w]*?)'

for i in range(0,10):

link = '?start=' + str( i * 25)

r = requests.get(link,headers = headers,timeout = 10)

print(str(i + 1),"頁響應狀態碼:",r.status_code)

root_html = re.findall(root_pattern,r.text)

for html in root_html:

name = re.findall(name_pattern,html)

print(movie_list)

get_movies()

我的個人主頁:www.unconstraint.cn

python 爬蟲實現網頁資訊抓取

首先實現關於網頁解析 讀取等操作我們要用到以下幾個模組 import urllib import urllib2 import re def test f urllib.urlopen while true firstline f.readline print firstline 我們大概要做幾件事...

python多執行緒爬蟲抓取網頁

突發想法,抓取 資料以便採用機器學習分析練手,網頁為年份。步驟如下 1 每乙個子執行緒抓取每一年的網頁 2 抓取網頁後利用正規表示式抽取資料,存入多維list。3 構建sql語句,存入mysql。user bin env python3 coding utf 8 from bs4 import be...

爬蟲基礎 Python 抓取網頁(學習筆記)

import urllib.request url headers 瀏覽器偽裝 request urllib.request.request url,headers headers 發出請求 開啟和讀取url請求並且爬取網頁內容 try response urllib.request.urlopen...