Python网络爬虫(1)--url访问及参数设置

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

环境:Python2.7.9 / Sublime Text 2 /Chrome

1.url访问,直接调用urllib库函数即可

importurllib2

url='http://www.baidu.com/'response=urllib2.urlopen(url)

html=response.read()PRinthtml

2.带参数的访问,以baidu搜索功能为例

使用Chrome浏览器访问效果,Chrome搜索引擎设置为baidu,地址栏中输入test,效果如下:

可以看到baidu搜索的url为https://www.baidu.com/s?ie=UTF-8&wd=test

修改代码,增加访问参数

#coding=utf-8importurllibimporturllib2#url地址url='https://www.baidu.com/s'#参数values={'ie':'UTF-8','wd':'test'}#进行参数封装data=urllib.urlencode(values)#组装完整urlreq=urllib2.Request(url,data)#访问完整urlresponse =urllib2.urlopen(req)

html=response.read()printhtml

运行代码,(Sublime Text 如果出现Decode error,需要将Python.sublime-build设置为"encoding": "utf-8")得到结果为

提示访问页面不存在,这个时候需要考虑一下访问方式的问题。使用Chrome开发者工具,监测Network,确定访问方式为GET

urllib2.Request(url,data) 访问方式为POST方式,改用GET方式进行尝试,需要手动组装URL,更改代码为

#coding=utf-8importurllibimporturllib2#url地址url='https://www.baidu.com/s'#参数values={'ie':'UTF-8','wd':'test'}#进行参数封装data=urllib.urlencode(values)#组装完整url#req=urllib2.Request(url,data)url=url+'?'+data#访问完整url#response = urllib2.urlopen(req)response =urllib2.urlopen(url)

html=response.read()printhtml

再次运行,获得结果为

https发生了重定向,需要改用http

#coding=utf-8importurllibimporturllib2#url地址#url='https://www.baidu.com/s'url='http://www.baidu.com/s'#参数values={'ie':'UTF-8','wd':'test'}#进行参数封装data=urllib.urlencode(values)#组装完整url#req=urllib2.Request(url,data)url=url+'?'+data#访问完整url#response = urllib2.urlopen(req)response =urllib2.urlopen(url)

html=response.read()printhtml

再次运行,可实现正常访问

http://leettest.com/blog/

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航