永远不要再从一个站点上多次删除html。

html_librarian的Python项目详细描述


#图书管理员

这个软件包的目标几乎是像一个为网页抓取设置的训练轮子。


一个好的例子是递归地尝试访问网站上的所有链接,例如:


http://web.archive.org/web/20080827084856/http://www.nanowerk.com:80/nanotechnology/nanommaterial/commercial\u all.php?page=2

“图书管理员”的目标是保存HTML以备以后使用,这样你就不必重复以前的工作,让你对所请求的地方更加友好,节省时间,让您体验更流畅的刮擦体验。

让我们概述一个示例:


通过inspect元素查看上面的html站点;您将看到所有名称和链接都位于<;div class="divhead">, and all of the blurbs are under <div class="divline">. Now, I would probably do this:

``` python3
来自urllib.request import urlopen
来自bs4 import beautifulsoup

alink='http://web.archive.org/web/20080827084856/http://www.nanowerk.com:80/nanotechnology/nanommaterial/commercial\u all.php?page=2'
resp=urlopen还有别的原因。
出于上述第一个原因,我可能会对“div.divline”进行相同的检查。然后,对于这些站点,我必须递归地访问它们并获取它们的html。

我们可以这样做:

``python3
来自图书管理员import library



html=lib.get(alink)
soup=beautifulsoup(html,'lxml')
````

“图书管理员”会找到它并从你的“htmlibrary”中提取出来,这样你就可以立即使用它。

如果你需要更新的html,只需从图书管理员导入图书管理员


removed=lib.remove(alink)
assert removed
````

`lib.remove(alink)`将从'htmlibrary'和'linkmap'中删除链接'alink',因此,如果使用相同的链接调用'lib.get(alink)',“图书管理员”将再次获得HTML。



此项目尚处于初级阶段,因此如果您想要创建任何功能,请创建一个问题,我将着手解决它。



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
面向批处理的java非阻塞队列   java如何基于HttpComponent获取html内容   java为什么我的程序会显示此错误?   java spring控制器如何处理应用程序/octetstream请求?   尝试将数据插入数据库时出现java常规错误   无法在java多线程处理中维护生产者任务的顺序   java为什么JSON数据无法访问ViewPager?   java获取Maven中特定分支的SVN buildnumber   java客户端无法从服务器接收信息   java等轴测地图绘制,生成   java无法调试ProcessBuilder   java热点JVM阵列分配   在数组中存储“inputdialog”数据的java   saml Java Inflater引发DataFormatException“无效代码长度集”   从集合(爬虫、Jsoup、Java)写入文件