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在线解析网站),结果截图

Ajax-get/post 爬虫_第1张图片
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点击这里显示结果:
Ajax-get/post 爬虫_第2张图片
找到了我们想要的结果

你可能感兴趣的:(爬虫/html,爬虫ajax)