elsie

Python爬虫是如何遍历文档树呢?一招教你

时光总嘲笑我的痴心妄想 提交于 2020-08-17 13:04:25
遍历文档树 1.直接子节点:.contents .children属性 .content Tag的.content属性可以将Tag的子节点以列表的方式输出 #!/usr/bin/python3 # -*- coding:utf-8 -*- from bs4 import BeautifulSoup html = """ <html><head><title>The Dormouse's story</title></head> <body> <p class="title" name="dromouse"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1"><!-- Elsie --></a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie

【纪中2020.5.06日】模拟赛题解

拥有回忆 提交于 2020-08-07 00:33:10
目录: T1:移动奶牛 T2:电压放大器 T3:步行 T4:数数 第一题USACO 后三题是市选…… 正题: T1:移动奶牛 题目描述 Farmer John的三头获奖奶牛Bessie、Elsie和Mildred,总是会迷路走到农场上遥远的地方去!他需要你帮助将她们一起赶回来。 农场的草地大体是一块狭长的区域——我们可以将其想象成一条数轴,奶牛可以占据数轴上的任意整数位置。这3头奶牛现在正位于不同的整数位置,Farmer John想要移动她们,使得她们占据三个相邻的位置(例如,位置6、7、8)。 不幸的是,奶牛们现在很困,Farmer John要让她们集中精力听从命令移动并不容易。任意时刻,他只能使得一头处在“端点”(在所有奶牛中位置最小或最大)位置的奶牛移动。当他移动奶牛时,他可以命令她走到任意一个未被占用的整数位置,只要在新的位置上她不再是一个端点。可以看到随着时间的推移,这样的移动可以使奶牛们趋向越来越近。 请求出使得奶牛们集中到相邻位置所进行的移动次数的最小和最大可能值。 输入 输入包含一行,包括三个空格分隔的整数,为Bessie、Elsie和Mildred的位置。每个位置均为一个范围1…10^9内的整数。 输出 输出的第一行包含Farmer John需要将奶牛们聚集起来所需进行的最小移动次数。第二行包含他将奶牛聚集起来能够进行的最大移动次数。 样例输入 4 7 9

非结构化数据和结构化数据提取

狂风中的少年 提交于 2020-04-25 09:55:35
页面解析和数据提取 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值。内容一般分为两部分, 非结构化的数据 和 结构化的数据 。 非结构化数据:先有数据,再有结构, 结构化数据:先有结构、再有数据 不同类型的数据,我们需要采用不同的方式来处理。 非结构化的数据处理 文本、电话号码、邮箱地址 正则表达式 HTML 文件 正则表达式 XPath CSS选择器 结构化的数据处理 JSON 文件 JSON Path 转化成Python类型进行操作(json类) XML 文件 转化成Python类型(xmltodict) XPath CSS选择器 正则表达式 为什么要学正则表达式 实际上 爬虫一共就四个主要步骤 : 明确目标 (要知道你准备在哪个范围或者网站去搜索) 爬 (将所有的网站的内容全部爬下来) 取 (去掉对我们没用处的数据) 处理数据(按照我们想要的方式存储和使用) 我们在昨天的案例里实际上省略了第3步,也就是"取"的步骤。因为我们down下了的数据是全部的网页,这些数据很庞大并且很混乱,大部分的东西使我们不关心的,因此我们需要将之按我们的需要过滤和匹配出来。 那么对于文本的过滤或者规则的匹配,最强大的就是正则表达式,是Python爬虫世界里必不可少的神兵利器。 什么是正则表达式 正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则