鱼C论坛

 找回密码
 立即注册
查看: 1191|回复: 0

[技术交流] python 054 爬虫之实战

[复制链接]
发表于 2018-7-30 00:30:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. HTTP 是基于请求-响应的模式, 发出请求的永远是客户端,做出响应的永远是服务端。在客户端和服务器之间进行请求-响应时,最常用的是哪两种方法为GET 和 POST

2. 在网页的控制台界面中的network中记录了客户端与服务器之间的请求和响应信息, 其中在Headers中可以查找相应的信息

3. urllib.request.urlopen(url) 实际上是先将 urllib.request.Request(url)类实例化, 再将对象传入urlopen():
>>> response = urllib.request.urlopen('http://www.baidu.com')
就等于
>>> req = urllib.request.Request('http://www.baidu.com')
>>> response = urllib.request.urlopen(req)

4. response对象有三种方法:
        1. geturl(): 返回所检索的资源的URL
        2. info(): 返回页面的meta信息
        3. getcode(): 返回响应的HTTP状态代码

5. urlopen() 方法的 timeout 参数用于设置连接的超时时间,单位是秒

6. 对于http headers中的From Data下的内容即为urlopen(url, data)中的data元素, 当传入data元素时, HTTP 的请求就是使用 POST 方式, 不传入data元素(默认为NULL)时, HTTP 的请求就是使用 GET 方式, data为一个字典, 且需要用特定的格式, 需用 urllib.parse.urlencode(data).encode('utf-8')进行编码(不一定是'utf-8')

7. json: JSON 是一种轻量级的数据交换格式,就是用字符串把 Python 的数据结构封装起来,便与存储和使用, 导入json模块, 使用json.loads(f)可以将用json封装的数据结构转换成python的数据结构

8. 在http Headers中的Request Headers中User-Agent 属性记录了你所使用的浏览器类型、操作系统、浏览器内核等信息的标识

附一个有道翻译的练习:
import  urllib.request
import  urllib.parse
import  json

content = input("请输入需要翻译的内容: ")

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['i'] = content
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1532858738349'
data['sign'] = '27e27410c327728d3532188293507c13'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data['typoResult'] = 'True'
data = urllib.parse.urlencode(data).encode('utf-8')

response = urllib.request.urlopen(url, data)
html = response.read().decode('utf-8')

target = json.loads(html)
print('翻译结果: %s' % (target['translateResult'][0][0]['tgt']))

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 19:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表