简单的Python爬虫 (2)

项目案例

from http import cookiejar import urllib3 import urllib url = "http://www.baidu.com" print("第一种方法") response1 = urllib.request.urlopen(url) print (response1.getcode()) print (len(response1.read())) print("第二种方法") request = urllib.request.Request(url) request.add_header("user-agent","Mozilla/5.0") response2 = urllib.request.urlopen(request) print(response2.getcode()) print(len(response2.read())) print("第三中方法") cj = cookiejar.CookieJar() opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) urllib.request.install_opener(opener) response3 = urllib.request.urlopen(url) print(response3.getcode()) print(cj) print(response3.read())

这里写图片描述

网页解析器

从网页中提取出有价值的工具

这里写图片描述


几种网页解释器
BeautifulSoup是第三方解释器,他既可以调用官方自带的html.parser也可以调用lxml

这里写图片描述


结构化解析
将整个网页文件加载成 结构化解析-DOM(Document Object Model)树(文档-对象模型)
官方定义的网页解析模型

这里写图片描述


BeautifulSoup4
1.安装

conda install beautifulsoup4

测试安装是否成功

import bs4 print(bs4)

语法
1.创建bs对象,文档字符串加载为DOM树
按照DOM树进行搜索

find_all(搜索全部的节点)

find(只搜索第一个节点)

访问节点的 名称、文字、属性

这里写图片描述


案例

这里写图片描述

form bs4 import BeautifulSoup #根据HTML网页字符串创建bs对象 soup = BeautifulSoup( html_doc,#HTML文档字符串 \'html.parser\'#HTML解析器 from_encoding = \'utf-8\'#HTML文档编码)

搜索节点(find_all find)

#方法:find_all(name,atters,string) #查找所有为a的节点 soup.find_all(\'a\') #差找所有标签为a的节点 链接符合/view/123.html形式的节点 soup.find_all(\'a\',href=‘/view/123.html’) soup.find_all(\'a\',href=re.complie(r\'/view/\d+\.html\')) #查找所有有标签为div,class为abc,文字为Python的节点 soup.find_all(\'div\',class_=\'abc\',string=\'python\') #class_:_是因为Python关键字有class避免冲突 所以加—

访问节点信息

#得到节点:<a href=http://www.likecs.com/\'1.html\'>Pythone</a> #获取查找到的节点的标签 node.name #获取a节点的href属性 node[\'href\'] #获取查找到a节点的链接文字 node.get_text()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpdjz.html