一、get和post请求的区别:
get:请求的url会附带查询参数
post:请求的url不带参数
对于get请求:查询参数在QueryString里保存
对于post请求:查询参数在Form表单里保存(如有道翻译)
注意:做爬虫最需要关注的不是页面信息,而是页面信息的来源
二、动态页面ajax
AJAX方式加载的页面,数据来源一定是json
拿到json,就是拿到了网页的数据。
三、Handler处理器和自定义Opener
我们一直用的urlopen,他是一个特殊的opener(也就是模块帮我们构建好的)。
但是基本的urlopen()方法不支持代理,cookie等其他的http/https高级功能。所以要支持这些功能:
- 使用相关的Handler处理器,来创建特定的处理器对象;
- 然后通过urllib.request.build_opener()方法使用这些处理器对象,创建自定义opener对象;
- 使用自定义的opener对象,调用open()方法发送请求。
四、HTTPPasswordMgrWithDefaultRealm()
这个会创建一个密码管理对象,用来保存和HTTP请求相关的授权信息,一般用于两种情况:
- ProxyBasicAuthHandler():授权代理处理器
- HTTPBasicAuthHandler():验证web客户端的授权处理器
五、cookie的知识
一、cookie的基础知识
cookie是指某些网站服务器为了辨别用户身份和进行session跟踪,而储存在用户浏览器上的文本文件,cookie可以保持登录信息到用户下次与服务器的会话。
cookie由变量名和值组成,根据Netscape公司的规定,cookie格式如下:
Set-Cookie: NAME=VALUE; Expires=DATE; Path=PATH; Domain=DOMAIN_NAME; SECURE
Cookies在爬虫方面最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续。
二、cookielib库和HTTPCookieProcessor处理器
在python处理Cookie,一般是通过cookielib模块和HTTPCookieProcessor处理器类一起使用。
cookie模块:主要作用是提供用于存储cookie的对象。
HTTPCookieProcessor处理器:主要作用是处理这些cookie对象,并构建handler对象。
其中,cookielib库:该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar
大多数情况下,只用CookieJar(),如果需要和本地文件交互,就用MozillaCookiejar()或LWPCookieJar()
三、爬虫四个步骤:
- 明确目标(要知道你准备在哪个范围或者网站云搜索)
- 爬(将所有的网站的内容全部爬下来)
- 取(去掉对我们没用的数据)
- 处理数据(按照我们想要的方式存储和使用)
注:为了防止字符串被转义字符替代,则在处理字符串时,在前面加上‘r’
四、re
- python里re模块的使用(正则用法):
注:当然,除了正则外,还可以将HTML文件转换为xml文件,然后用XPath来处理