python实战学习3——爬虫

初始爬虫

1.post请求百度翻译

操作如下:

import urllib.request
url='http://fanyi.baidu.com/sug'
header={
    'ua代理':'ua代理'
}
data={
    'kw':'spider'
}
#post请求的参数必须编码
data=urllib.parse.urlencode(data).encode('utf-8')
#post请求的参数是不会拼接在url后面的,而是需要放在请求对象的定制的参数中
#post请求的参数必须要进行编码
request=urllib.request.Request(url=url,data=data,headers=headers)
#模拟浏览器向服务器发送请求
response=urllib.request.urlopen(request)
#获取响应的数据
content=response.read().decode('utf-8')
print(content)

用type方法可以发现打印出来的content是str类型,实际上content是json类型,因此必须通过json方法来将content翻译为可以读懂的类型,因此还要加上下面的内容

import json
obj=json.load(content)
print(obj)
#以百度翻译的spider英文单词为例,输出结果是所有的翻译结果。

2.ajex的get请求——豆瓣电影第一页

import urllib.request
url='Request URL-http://www.网址.com/'
headers={
    '请求头':'请求头'
}
#请求对象的定制
request=urllib.request.Request(url=url,headers=headers)
#获取相应的数据
response=urllib.request.urlopen(request)
content=response.read().decode('utf-8')
#数据下载到本地
#open方法在默认情况下使用的是gbk的编码,由于数据里有汉字,想要保存该数据,那么必须在open方法里指定utf-8编码
fp=open('douban.json','w',encoding='utf-8')
fp.write(content)

#当然上边两行代码可以简写成下面两行:
with open('douban.json','w',encoding='utf-8') as fp:
    fp.write(content)

3.知识点穿插:

(1)来说明一下什么是请求头

在上边所学的内容中ua代理就是请求头,但是你学到后面可以发现,能作为请求头的不止有ua代理,并且有时候ua代理不能作为请求头,请求头就像一张身份证,上边描述着姓名,性别,国籍等一系列你自己独一无二的信息(对于ua代理等就是描述着自己电脑的操作系统,CPU,gpu,ip地址等信息的身份证)

(2)decode解码,encode编码

(3)

点击鼠标右键——inspect——netwo——headers——Request URL 这里的Request URL是接口,并不是单纯的网址,你之前所有代码中url变量就是Request URL对应的接口
点击鼠标右键——inspect——netwo——headers——Request Method:GET 这里的Request Method指的是请求方式,请求方式是get就用get请求urlencode,请求方式是post就用post请求urlencode
点击鼠标右键——inspect——netwo——headers——X-Requested-With:XMLHttpRequest 这里当X-Requested-With对应的数据为XMLHttpRequest时则用ajax请求

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值