dsfsfs 发表于 2015-4-25 05:27:02

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

  环境:Python2.7.9 / Sublime Text 2 / Chrome
  1.url访问,直接调用urllib库函数即可



import urllib2
url='http://www.baidu.com/'
response = urllib2.urlopen(url)
html=response.read()
print html
  2.带参数的访问,以baidu搜索功能为例
  使用Chrome浏览器访问效果,Chrome搜索引擎设置为baidu,地址栏中输入test,效果如下:

  可以看到baidu搜索的url为 https://www.baidu.com/s?ie=UTF-8&wd=test
  修改代码,增加访问参数



# coding=utf-8
import urllib
import urllib2
#url地址
url='https://www.baidu.com/s'
#参数
values={
'ie':'UTF-8',
'wd':'test'   
}
#进行参数封装
data=urllib.urlencode(values)
#组装完整url
req=urllib2.Request(url,data)
#访问完整url
response = urllib2.urlopen(req)
html=response.read()
print html
  运行代码,(Sublime Text 如果出现Decode error,需要将Python.sublime-build设置为"encoding": "utf-8")得到结果为

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

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



# coding=utf-8
import urllib
import urllib2
#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()
print html
  再次运行,获得结果为

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



# coding=utf-8
import urllib
import urllib2
#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()
print html
  再次运行,可实现正常访问
页: [1]
查看完整版本: Python网络爬虫(1)--url访问及参数设置