概要
リクエストはブラウザをシミュレートして、HTTP または HTTPS プロトコルのネットワーク リクエストを開始して、Web ページのソース コードを取得できます。
ネットワーク リクエストを開始する主なメソッドは、リクエスト内の get() と post() です。get() の機能は Web ページを取得するリクエストを開始することであり、post() はデータをサーバーに送信することであり、よく使用されます。ユーザーのログインをシミュレートします。
1. 静的 Web ページのソース コードを取得します。
Baidu Web ページを開き、Web ページのソース コードを印刷します。
import requests as re
rp = re.get(url='https://www.baidu.com')
print(rp.text)
演算結果
2. 動的にロードされたデータを取得する
動的 Web ページはサーバーから返される Web ページ テンプレートであり、Ajax などの方法でデータが埋め込まれたテンプレートでは、通常、必要なデータはサーバーから返される JSON 形式のデータ パッケージ内にあります。
動的と静的の区別: ブラウザーが下にスクロールするにつれて Web ページがさらに多くのデータを読み込む場合、これは動的です。
import requests as re
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
url='https://movie.douban.com/j/chart/top_list'
params={'type':'25','interval_id':'100:900','action':'','start':'0','limit':'1'}
rp = re.get(url=url,headers=header,params=params)
r=rp.json()
print(r)
3. 写真を取得する
ソースコードを取得する場合は、まず get() を使用して応答オブジェクトを取得し、次に応答オブジェクトの text プロパティを使用して Web ページのソースコードを抽出します。ただし、画像を取得したい場合は、最初に get() を使用して応答オブジェクトを取得しますが、text 属性を使用して画像を抽出することはできないため、content 属性を使用して画像のバイナリ バイトコードを抽出する必要があります。
import requests
url = ''
response = requests.get(url = url)
content = response.content
with open('图片.jpg', 'wb') as fp:
fp.write(content)