Ajax-get/post 爬蟲

Ajax-post 與 Ajax-get

上兩個周學了學習了一些 urllib.request 的內容 ,簡單瞭解了瀏覽器抓包。接下來舉個例子

  1. Ajax-post: 根據百度翻譯做的,調用百度翻譯的接口,發送post請求(包含自己想要的單詞),然後獲取翻譯結果
#導入庫
import urllib.parse
import urllib.request

#百度翻譯接口 通過瀏覽器抓包找到
url="https://fanyi.baidu.com/sug"
word=input("請輸入你想要查詢的單詞:")
#構造表單  傳入的參數
form_data={
    'kw':word,
}
#請求頭
headers={
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
#僞造瀏覽器訪問
request=urllib.request.Request(url=url,headers=headers)
#把表單轉換成一定的格式
form_data=urllib.parse.urlencode(form_data).encode()
#發送請求並傳入數據
response=urllib.request.urlopen(request,data=form_data)
# response=urllib.request.urlopen(url)
print(response.read().decode())

我輸入了單詞input ,把返回的結果複製到json.cn (json在線解析網站),結果截圖

在這裏插入圖片描述
2. Ajax-get:爬取目標 豆瓣電影
代碼:

import urllib.request
import urllib.parse

url="https://movie.douban.com/j/search_subjects?type=movie&tag=%E8%B1%86%E7%93%A3%E9%AB%98%E5%88%86&sort=recommend&page_limit=20&"
page=int(input("請輸入你想要的頁碼"))
#構造表單
data={
    'page_start':(page-1)*20,
}
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
#構造我們想要那頁的url
url=url+urllib.parse.urlencode(data)
request=urllib.request.Request(url=url,headers=headers)
# get請求
res=urllib.request.urlopen(request)
print(res.read().decode())

返回的json複製到json.cn點擊這裏顯示結果:
在這裏插入圖片描述
找到了我們想要的結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章