爬虫学习《一》

 1.第一列Name:请求的名称,一般会将URL的最后一部分内容当作名称。

 2.第二列Status: 响应的状态码,这里显示为200,代表响应式正常的。通过状态码,我们可以判断发送了请求之后是否得到了正常的响应。

 3.第三列Type:请求的文档类型。这里为document,代表我们这次请求的是一个HTML文档,内容就是一些HTML代码。

 4.第四列Initiator: 请求源。用来标记请求是由哪个对象或进程发起的。

 5.第五列Size:从服务器下载的文件和请求的资源大小。如果是从缓存中取得的资源,则该列会显示from cache。

 6.第六列Time:发起请求到获取响应所用的总时间。

 7.第七列Waterfall:网络请求的可视化瀑布流。

点击www.baidu.com ,可以看到更详细的信息。

 首先是General部分,Requset URL为请求的URL,Request Method 为请求的方法,Status Code为响应状态码,Remote Address 为远程服务器的地址和端口,Referre Policy为Referrer判别策略。Response Headers和Request Headers,这分别代表响应头和请求头。请求头里带有许多请求信息,比如:浏览器标识、Cookies、Host等信息,这是请求的一部分,服务器会根据请求头内的信息判断请求是否合法,进而作出对应的响应。

打开浏览器开发者工具中打开Application选项卡,然后在左侧会有一个Storage部分,最后一项为Cookies,点开,界面如下:

 1.Name:该Cookie的名称。一旦创建,该名称便不可更改。

 2.Value:该Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码。

3.Domain:可以访问该Cookie的域名。

该 robots.txt表示对所有爬虫访问任何目录的代码。

比较强大的解析库有lxml、Beautiful Soup、pyquery等。

一.lxml库:

lxml使用格式为:

对html构造了一个XPath解析对象:html=etree.HTML(‘html文件或内容’)

result=html.xpath('规则')

返回形式是一个列表。规则//li/a:表示 所有li节点的所有直接子节点。因为/用于获取直接子节点,//用于获取子孙节点。

父节点:/.. 表示父节点//a[@=href="link4.html"]/../@class 表示a结点href属性为link4.html的a节点,然后再获取其父节点,然后再获取其class属性

如果一个节点有两个class属性则需要用规则 [contains(@class,“li”)]/a/text()

二.Beautiful Soup库:

 Beautiful Soup就是Python的一个HTML或xml的解析库,可以用它来方便地从网页中提取数据, Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为UTF-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时你仅仅需要说明一下原始编码方式就可以了。

提供了CSS选择器,直接使用select方法。

三.pyquery库:

如果你对web有所涉及,如果你比较喜欢用CSS选择器,如果你对jQuery有所了解,那么这是一个更适合的解析库。

Ajax分析方法:

Ajax其实有其特殊的请求类型,叫做xhr

 其中Request Headers中有一个信息为X-Requested-With:XMLHttpRequest,这就标记了此请求是Ajax请求。

原文地址:https://www.cnblogs.com/572354941hnit/p/13041374.html