当前位置: 首页 > news >正文

中山网站建设哪家好百度帐号管家

中山网站建设哪家好,百度帐号管家,wordpress 模板 破解,广州市专业网站建设BS4 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库#xff0c; 它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方 式。 Beautiful Soup 4 官方文档#xff1a;https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 帮助手册…BS4 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库 它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方 式。 Beautiful Soup 4 官方文档https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 帮助手册https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/ 一、安装Beautiful Soup 命令行pip3 install beautifulsoup4 或者 File--》setting--》Projectxxx--》右侧 “” 》查找 Bs4 》左下角 install apply 确定 二、安装解析器lxml (第三方的解析器推荐用lxml速度快文档容错能 力强) pip3 install lxml 三、使用 创建bs对象 # 打开本地HTML文件的方式来创建对象 soup BeautifulSoup(open(xxxx.html)) # 创建Beautiful Sou对象 #打开网上在线HTML文件 url https://jobs.51job.com/ruanjian/ wb_data requests.get(url) soup BeautifulSoup(wb_data.text, lxml) 其中 soup BeautifulSoup(html, lxml)         # 指定lxml解析器 或者 soup BeautifulSoup(url, html.parser)         # 内置默认html解析器 格式化输出soup对象内容 print(soup.prettify()) 四大对象 Beautiful Soup将复杂HTML文档转换成一个不复杂的树形结构, 每个节点都是Python对象,所有对象可以归纳为4种: Tag                                         标签                                 bs4.element.Tag NavigableString                    字符串                                bs4.element.NavigableString         BeautifulSoup                      整体页面                             bs4.BeautifulSoup Comment                                注释                                 bs4.element.Comment Tag是HTML 中的一个个标签 上面的 title a 等等 HTML 标签加上里面包括的内容就是 Tag。 一般标签都是成对出现结尾的有 /标示 下面用 Beautiful Soup 来方便地获取 Tags print soup.title 对于 Tag它有两个重要的属性是 name 和 attrs print soup.name print soup.head.name #[document] #head soup 对象本身比较特殊它的 name 即为 [document] 对于其他内部标签输出的值便为标签本身的名称。 print soup.p.attrs #{class: [title], name: dromouse} 如果我们想要单独获取某个属性可以这样例如我们获取它的 class 叫什 么 print soup.p[class] #[title] 还可以这样利用get方法传入属性的名称二者是等价的 print soup.p.get(class) #[title] NavigableString ##可以遍历的字符串 既然我们已经得到了标签的内容那么问题来了 我们要想获取标签内部的文字怎么办呢很简单用 .string 即可 例如 print soup.p.string #The Dormouses story 检查一下它的类型 print type(soup.p.string) BeautifulSoup                 ##表示的是一个文档的全部内容.大部分时候, 可以把它当作 Tag 对象是一个特殊的 Tag 获取它的类型名称以及属性 print type(soup.name) print soup.name #[document] print soup.attrs #{} 空字典 Comment         ##特殊类型的 NavigableString 对象,输出的内容仍然不包 括注释符号 print soup.a print soup.a.string print type(soup.a.string) 运行结果如下 其他操作 遍历文档树 以head标签为例 # .content 属性可以将tag的子节点以列表的方式输出 print(soup.head.contents) print(soup.head.contents[1])         # 获取列表中某一元素,0 是页面上的换行符 号1才是真值 # .children 返回的是一个list生成器对象 print(soup.head.children) # .string 返回最里面的内容 print(soup.head.string) print(soup.title.string)         # 两个输出是一样的 搜索文档树 》find_all() select() find_all(name, attrs, recursive, text, **kwargs) # find用法相同只返回一个 # name参数可以查找所有名字为 name 的tag可以是字符串正则表达 式列表 print(soup.find_all(a)) print(soup.find_all([a , b])) #recursive 递归查找相同名称标签 # keyword参数直接匹配属性对应的值 print(soup.find_all(class_ sister)) # 因为class在python中已经有了为了防止冲突所以是class_ print(soup.find_all(id link2)) # text参数搜索文档中的字符串内容与name参数的可选值一样,text参数 接受字符串,正则表达式,列表 print(soup.find_all(text Elsie)) #严格匹配 print(soup.find_all(text[Tillie , Elsie , Lacie])) #找多个 print(soup.find_all(textre.compile(Dormouse))) #正则查找 五使用演练 以实际例子作说明 1、定义一个html并使用BeautifulSoup的lxml解析 2、获取所有的tr标签 find 返回找到的第一个标签find_all以list的形式返回找到的所有标签 trs soup.find_all(tr)         # 返回列表 n1 for i in trs: print(第{}个tr标签 .format(n)) print(i) n1 3、获取第二个tr标签 limit 可指定返回的标签数量 trs soup.find_all(tr ,limit2)[1]         # 从列表中获取第二个元素limit 获取 标签个数 print(trs) 4、获取class a1的tr标签 a.方法一 class_ trs soup.find_all(tr ,class_ a1) n1 for i in trs: print(第{}个classa1的tr标签.format(n)) print(i) n1 b.方法二attrs 将标签属性放到一个字典中 trs soup.find_all(tr,attrs{class:a1}) n1 for i in trs: print(第{}个classa1的tr标签.format(n)) print(i) n1 5、提取所有id test且class test的a标签 方法一class_ alist soup.find_all(a ,id test ,class_ test) n1 for i in alist: print(第{}个id test且class test的a标签 .format(n)) print(i) n1 方法二attrs alist soup.find_all(a ,attrs{id:test , class:test}) n1 for i in alist: print(第{}个id test且class test的a标签 .format(n)) print(i) n1 6、获取所有a标签的href属性 alist soup.find_all(a) #方法一通过下标获取 for a in alist: href a[href] print(href) #方法二 通过attrs获取 for a in alist: href a.attrs[href] print(href) 7、获取所有的职位信息(所有文本信息) string 获取标签下的非标签字符串(值), 返回字符串 注第一个tr为标题信息不获取。从第二个tr开始获取。 trs soup.find_all(tr)[1:] movies [] for tr in trs: move {} tds tr.find_all(td) move[td1] tds[0].string         # string 取td的值 move[td2] tds[1].string move[td3] tds[2].string movies.append(move) print(movies) 8、获取所有非标记性字符 strings 获取标签下的所有非标签字符串 返回生成器。 trs soup.find_all(tr)[1:] for tr in trs: infos list(tr.strings)         # 获取所有非标记性字符包含换行、空格 print(infos 9、获取所有非空字符 stripped_strings 获取标签下的所有非标签字符串并剔除空白字符返回 生成器。 trs soup.find_all(tr)[1:] for tr in trs: infos list(tr.stripped_strings)         # 获取所有非空字符不包含换行、空 格 print(infos) # stripped_strings 获取所有职位信息 trs soup.find_all(tr)[1:] movies [] for tr in trs: move {} infos list(tr.stripped_strings) move[职位] infos[0] move[类别] infos[1] move[时间] infos[2] movies.append(move) print(movies) 10、get_text 获取所有职位信息 get_text 获取标签下的所有非标签字符串,返回字符串格式 trs soup.find_all(tr)[1] text trs.get_text() # 返回字符串格式 print(text) 14、提取所有a标签的href属性 # 方法一 a soup.select(a) for i in a: print(i[href]) # 方法二 a soup.select(a) for i in a: print(i.attrs[href])
http://wiki.neutronadmin.com/news/354814/

相关文章:

  • 网站页面设计基础教程wordpress字体投影
  • 网站建设及推广话术wordpress 主题 psd
  • 东营建设网站公司云南网络推广
  • 厚街找人做网站优化师是一份怎样的工作
  • php做商城网站重庆市招投标网官网
  • php能用着手机网站开发爱城市网官方下载
  • 网站代理游戏上海专业网站设计制作
  • 浙江艮威水利建设有限公司网站惠州行业网站设计方案
  • 做网站用后缀好用wordpress还是discuz
  • 做网站用php如何学习成都电脑培训班零基础
  • 佛山市品牌网站建设多少钱小程序开发平台需要多少钱
  • 关于征求网站建设如何在云服务器上搭建网站
  • php就是做网站吗可以注册邮箱的网站
  • app网站建设工作师适合女生的计算机专业有哪些
  • 有哪些做推送的网站微信定制开发 网站开发
  • 如何对网站进行优化如何看网站是否被降权
  • 网站排名优化各公司的app类似wordpress
  • 二手车网站怎么做的中国的搜索引擎有哪些
  • 芯片公司网站建设树在线网页制作网站
  • 小公司网站建设现状seo软件代理
  • 哈尔滨公司网站做网站维护学什么编程语言
  • dedecms采集规则各类网站手机端网站开发多少钱
  • 自己做的网站如何上传网上网店美工是做什么的
  • 较好网站建设公司网站建设开什么名目
  • 做菠菜网站多少钱室内装饰设计师
  • 企业网站怎么做html营销网站四大要素
  • 做国外网站建设普通网站能不能用vue做几个小功能
  • 北京建设主管部门官方网站开发一套软件app
  • 甘肃省引洮工程建设管理局官方网站展厅设计装修公司
  • 个人做论坛网站有哪些网站虚拟主机费用