Requests 是用Python语言编写,基于urllib,采用Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以PEP 20的习语为中心开发的,所以它比urllib更加Pythonic。更重要的一点是它支持 Python3 哦!
1、requests简单用法
2、解析HTML库——BeautifulSoup简介
使用requests获取的是HTML页面,在HTML中除了html标记如<title>,<p>外,还有很多 CSS代码。可以使用BeautifulSoup库解析HTML,利用BeautifulSoup对象的select方法可以筛选出css标记的内容。有如下几种方法获取内容:
①通过标签名查找
②通过类名查找
③通过id名查找
④组合查找。组合查找即和写 class 文件时,标签名与类名、id名进行的组合原理是一样的,例如查找p标签中,id等于link1的内容,二者不要用空格分开。
⑤属性查找。查找时还可以加入属性元素,属性需要用中括号括起来,注意属性和标签属于同一节点,所以中间不能加空格,否则会无法匹配到。不在同一节点的使用空格隔开,同一节点的不加空格。
以下面的HTML代码为例:
分析代码如下:
输出结果如下:
3、实例:爬取https://m.tianyancha.com/search/oc35-s2/p1中企业信息。
有了以上知识后,我们可以利用上述知识获取企业信息,在天眼查网站里有各类企业信息,打开https://m.tianyancha.com/search/oc35-s2,如下图是页面信息
我们的任务是获取企业信息,具体步骤如下:
1)获取页面信息,用google浏览器打开的页面中右键打开检查,依次点开 network--doc--headers中的Request URL,这个地址是我们要爬取页面的地址。
用res=requests.get(‘https://m.tianyancha.com/search/oc35-s2/’) 返回requests对象得到该页面所有内容。
2)分析内容,获取内容 查看源码后发现我们要找企业信息在一个“<div class="search_result_container">”容器中,可以用select方法获取所有内容;
公司名称在“<div class="col-xs-10 search_name pl0 pr0"><a href="/company/3565313" style="word-break:break-all;" class="query_name in-block" οnclick="common.stopPropagation(event)"><span style="color:#2e2e2e;">杭叉集团股份有限公司</span></a></div>”中,而其他信息都在<div class=”title”> 中,如下图
参考代码:
代码运行结果: