(未完成...)Python3网络爬虫(2):利用urllib.urlopen向有道翻译发送数据并获得翻译结果...

 环境: 

  火狐浏览器

  pycharm2017.3.3

  python3.5

1.url不仅可以是一个字符串,例如:http://www.baidu.com。url也可以是一个Request对象,这就需要我们先定义一个Request对象,然后将这个Request对象作为URLopen的参数使用,方法如下:

 

1 from urllib import request
2 
3 req = request.Request("http://fanyi.baidu.com/")
4 response = request.urlopen(req)
5 html = response.read()
6 html = html.decode("utf-8")
7 print(html)

 

 

 这段代码同样可以得到网页信息

  urlopen()返回的对象,可以使用read()进行读取,同样也可以使用geturl(),info()方法,getcode()方法。

    geturl()返回的是一个url的字符串;

    info()返回的是一些meta标记的元信息,包括一些服务器的信息;

    getcode()返回的是HTTP的状态码,如果返回200表示请求成功;

  根据这些,编写如下代码

 

1 from urllib import request
2 req = request.Request("http://fanyi.baidu.com/")
3 response = request.urlopen(req)
4 print("geturl打印信息:%s" % (response.geturl()))
5 print("-------------------------------------------")
6 print("info打印信息:%s" % (response.info()))
7 print("-------------------------------------------")
8 print("getcode打印信息:%s" % (response.getcode()))

 

 

   运行结果

  

2.urlopen的data参数

  我们可以使用data参数,向服务器发送数据

  从客户端向服务器提交数据使用post

  如果没有设置urlopen()函数的data参数,HTTP请求采用get方式也就是从服务器获取数据,如果我们设置data参数,HTTP请求采用post方式,就可以向服务器传送数据

3.发送data实例

  向有道翻译发送data,得到翻译结果

  (1)打开有道翻译界面,如下图所示

        

  (2)右键查看元素,选择网络

      

  (3)在翻译中输入单词mark,点击翻译,可以看到列表出现了新东西,双击方式为post的这行

      

  (4)查看消息头中的请求网址,记录下来,一会要用

    

 

  (5)点击参数,得到表单数据,记录下来,一会要用

      

  (6)得到以上数据后,写代码如下

        这。。。里有点问题了,好像不能通过抓包爬了,还得使用它的api,研究了一会没整明白,写了这么多,不舍得删了,先撂这,以后再弄,我去找一个抓包可以爬的,再写一篇新的

    

 

 

 

    

 

转载于:https://www.cnblogs.com/MC-Curry/p/8493847.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值