Pythonライブラリ爬虫類の要求は、それを習得するようにしてください、最も重要で最も最も一般的なライブラリです。
ここでは、ライブラリを知るようになっ
Pythonライブラリ爬虫類の要求は、それを習得するようにしてください、最も重要で最も最も一般的なライブラリです。
ここでは、ライブラリを知るようになっ
import requests
url = 'http://www.baidu.com'
r = requests.get(url)
print type(r)
print r.status_code
print r.encoding
#print r.content
print r.cookies
得到:
<class 'requests.models.Response'>
200
ISO-8859-1
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
2.Getリクエストメソッド
values = {'user':'aaa','id':'123'}
url = 'http://www.baidu.com'
r = requests.get(url,values)
print r.url
得到:http://www.baidu.com/?user=aaa&id=123
3.Postリクエストメソッド
values = {'user':'aaa','id':'123'}
url = 'http://www.baidu.com'
r = requests.post(url,values)
print r.url
#print r.text
得到:
http://www.baidu.com/
4.リクエストヘッダヘッダを処理
user_agent = {'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400'}
header = {'User-Agent':user_agent}
url = 'http://www.baidu.com/'
r = requests.get(url,headers=header)
print r.content
リクエストヘッダの処理という注意
当社のサーバー上で多くの時間を防ぐために、我々はリクエスト一般的にサーバーブラウザが要求を行ったとして偽装リクエストに向かう必要があるので、ブラウザからの要求は、それがブラウザに変装することが最善であるかどうかをチェックします1つの戦略は、アクセスやその他のエラーを否定するために、これは抗爬虫類であります
特記事項、我々が要求した後に何をすべきかに関係なく、必ずヘッダを持参し、怠惰と時間保存することはありません理解して交通ルールとしてこの場所を扱い、赤信号を実行しているだろう、必ずしも安全ではないが、危険ではないの発生、時間を節約するために、我々は、赤色光停止緑色の光に従ってください十分OK、エラーの場合には、しなければならないヘッダ、あまりにも、ウェブクローラ要求を行うプラス。
user_agent = {'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400'}
header = {'User-Agent':user_agent}
url = 'http://www.qq.com/'
request = urllib2.Request(url,headers=header)
response = urllib2.urlopen(request)
print response.read().decode('gbk')#这里注意一下需要对读取的网页内容进行转码,先要查看一下网页的chatset是什么格式.
Www.qq.comのUser-Agentを、ブラウザを押しF12で開く次を参照してください。
User-Agent:プロキシサーバーまたはいくつかの値がブラウザによって送信された要求であるかどうかによって判断することができる
のContent-Type:使用中のRESTインタフェースは、サーバーは、分析の方法をHTTPボディの内容を決定するために、この値をチェックします。
アプリケーション/ XML:ではXML RPC、このような使用のRESTful / SOAP呼び出しとして
アプリケーション/ JSON:JSON RPCを呼び出すときに使用し
たWebフォームを送信するためにブラウザを使用する場合:アプリケーション/ X - WWW-form-urlencodedで
サーバーまたはSOAPが提供するRESTfulな使用提供する際に、Content-Typeのセットが間違ってサービス拒否にサーバーを引き起こします
応答コードと応答コード加工ヘッドヘッダ
url = 'http://www.baidu.com'
r = requests.get(url)
if r.status_code == requests.codes.ok:
print r.status_code
print r.headers
print r.headers.get('content-type')#推荐用这种get方式获取头部字段
else:
r.raise_for_status()
得到:
200
{'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Server': 'bfe/1.0.8.18', 'Last-Modified': 'Mon, 23 Jan 2017 13:27:57 GMT', 'Connection': 'Keep-Alive', 'Pragma': 'no-cache', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Date': 'Wed, 17 Jan 2018 07:21:21 GMT', 'Content-Type': 'text/html'}
text/html
6.cookie処理
url = 'https://www.zhihu.com/'
r = requests.get(url)
print r.cookies
print r.cookies.keys()
得到:
<RequestsCookieJar[<Cookie aliyungf_tc=AQAAACYMglZy2QsAEnaG2yYR0vrtlxfz for www.zhihu.com/>]>
['aliyungf_tc']
7.リダイレクトメッセージと歴史
唯一allow_redirectsyにallow_redirectsフィールドを設定する必要がリダイレクトの取り扱いが偽無効リダイレクトへのリダイレクト、セットを許可するようにTrueに設定されています。
r = requests.get(url,allow_redirects = True)
print r.url
print r.status_code
print r.history
得到:
http://www.baidu.com/
200
[]
8.タイムアウト設定
タイムアウトオプションはタイムアウトパラメータで設定されている
PythonのURL = 'http://www.baidu.com' = R&LT requests.get(URL、タイムアウト= 2)
9.プロキシ設定
proxis = {
'http':'http://www.baidu.com',
'http':'http://www.qq.com',
'http':'http://www.sohu.com',
}
url = 'http://www.baidu.com'
r = requests.get(url,proxies = proxis)
著者:ニッケルPingyu