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":"1016903103@qq.com","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")


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值