Python基础学习-爬虫小试2

import urllib.parse
import urllib.request

data =urllib.parse.urlencode({"wd": "haha"})
url="http://baidu.com/s"
request=urllib.request.Request(url+'?'+data)
response=urllib.request.urlopen(request)
th_page=response.read().decode('utf8')
f=open('learnPY\\out.html','w',encoding='utf-8')
f.write(th_page)
f.close()
print("DONE")


     上头代码是get方式,GET方式是直接以链接形式访问,链接中包含了所有的参数,当然如果包含了密码的话是一种不安全的选择,不过你可以直观地看到自己提交了什么内容。POST则不会在网址上显示所有的参数。post参考下段代码:

import urllib
import urllib2
 
values = {"username":"[email protected]","password":"XXXX"}
data = urllib.urlencode(values) 
url = "https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn"
request = urllib2.Request(url,data)
response = urllib2.urlopen(request)
print response.read()

该段代码适用于2.X版本


卡住的地方是文本的encode和decode

     字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

  • decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。
  • encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。


另:文本存储要注意路径设置!


经人介绍,安装了第三方库:requests

修改如下:

import requests

data ={"wd": "haha"}
url="http://baidu.com/s"
request=requests.get(url, params=data)
f=open('out.html','w',encoding='utf-8')
f.write(request.text)
f.close()
print("DONE")


你可能感兴趣的:(python学习)