爬虫学习-2

利用get请求转码

上一篇文章介绍的爬虫都是之间爬取的主页面,没有任何操作,如果有查询相关操作的话,就需要用到我们的get请求。

譬如在www.baidu.com页面中搜索上海,跳转页面的网址复制下来是:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=%E4%B8%8A%E6%B5%B7&oq=%25E4%25B8%258A%25E6%25B5%25B7&rsv_pq=d12cfe88000698ee&rsv_t=48c1gtowHfHuKLR8PP0byaW%2BROC0dka1OlQuOsorKv5CiiVKXR8wLJ%2FbXkf6MrPgUE%2FB&rqlang=cn&rsv_dl=tb&rsv_enter=0&rsv_btype=t&rsv_sug3=11&rsv_sug1=8&rsv_sug7=100&rsv_sug4=1452。但我们看到的wd后面是“上海”两个字。所以如果我们想用电脑程序实习上海的搜索,就需要找到上海对应的编码。这个时候我们需要导入urllib.parse中的quote或者urlencode。(纯英文或者纯数字不需要编码转换,直接填就好,只有中文需要转码)

两者使用大同小异,先以quote举例

from urllib.request import Request,urlopen
from fake_useragent import UserAgent
from urllib.parse import quote

url="https://www.baidu.com/s?wd={}".format(quote("上海"))#转url中汉字的编码,因为之间wd后是汉字的话是无效的url

ua=UserAgent()
headers={
    "User-Agent":ua.chrome
}
url_2=Request(url,headers=headers)
reponse=urlopen(url_2)
info=reponse.read()
print(info.decode())

这是urlencode。

args={
    "wd":"上海",
    "ie":"utf-8"#可以写多对儿参数
}
print(urlencode(args))
url2="https://www.baidu.com/s?{}".format(urlencode(args))

我们看他的输出就可以看书urlencode输出时带着wd等名称,所以我们对url进行拼合的时候就直接在?后面添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值