-
如何使用Hpple解析HTML,以及获取网站上的所有超链接
2012-10-13 09:00:57关于怎么配置就不说了,具体可以参考:http://lwxshow.com/ios-iphone-development-teaches-you-how-to-use-the-objective-c-parsing-html-lwxshow-com ...如果需要的话,可以把解析下来的内容保存到数组里面。关于怎么配置就不说了,具体可以参考:http://lwxshow.com/ios-iphone-development-teaches-you-how-to-use-the-objective-c-parsing-html-lwxshow-com
主要代码如下:
// 1
NSURL *tutorialsUrl = [NSURL URLWithString:@"http://www.olv06.com/lgxw.asp?Clid=22&Chid=1"];
NSData *tutorialsHtmlData = [NSData dataWithContentsOfURL:tutorialsUrl];
// 2
TFHpple *tutorialsParser = [TFHpple hppleWithHTMLData:tutorialsHtmlData];
// 3
NSString *tutorialsXpathQueryString = @"//a";
NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];
for (TFHppleElement *element in tutorialsNodes) {
NSString *url = [element objectForKey:@"href"];
NSLog(@"%@",url);
NSLog(@"%@",[[element firstChild] content]);
}
如果需要的话,可以把解析下来的内容保存到数组里面。
-
如何批量下载网站中的超链接(一次性下载网页中所有可能的PDF文件)
2019-03-07 02:18:01WebDownloader 闲来无事写的一个网页资源下载器,有时候一个网页中,含有很多超链接,其中有很多资源,比如: ...首先,使用python中的requests库写一个简单的PDF获取器,下面是几个核心模块。 超链接获取 这部分...WebDownloader
闲来无事写的一个网页资源下载器,有时候一个网页中,含有很多超链接,其中有很多资源,比如:
- 视频/音频
- 图片
- PDF文件
- 表格
- 其他超链接
那么怎么批量获取呢?如果需要编写一个高扩展、分布式的抓取框架,应该包含哪些架构呢,这个之后再慢慢完善吧。
首先,使用python中的requests库写一个简单的PDF获取器,下面是几个核心模块。
超链接获取
这部分就是常规的爬虫与正则内容,主要分为两个步骤:
- 抓取网页中所有的 href 元素,并提取其超链接
- 下载相关网页中的PDF到本地中(以下代码暂时只下载后缀直接为.pdf的网址,其他类型的网址下面有讨论,待完善)
import re from pprint import pprint import requests from bs4 import BeautifulSoup def get_html(url): try: html = requests.get(url).text except Exception as e: print('web requests url error: {}\nlink: {}'.format(e, url)) return html class WebDownloader(object): def __init__(self, base_url): self.url = base_url self.links = set() def parse_html(self, verbose=False): html = get_html(self.url) soup = BeautifulSoup(html, parser='lxml') for link in soup.findAll('a'): if link.has_attr('href'): href = str(link.get('href')) if href.startswith('http'): self.links.add(href) if verbose: print(link.get('href')) def download(self): for link in self.links: link = str(link) if link.endswith('.pdf'): # handle direct pdf url link file_name = link.split('/')[-1] try: r = requests.get(link) # with open(os.path.join(path, file_name), 'wb+') as f: with open(file_name, 'wb+') as f: f.write(r.content) except Exception as e: print('Downloading error:{}\nlink:{}'.format(e, link)) url = 'https://cs231n.github.io/neural-networks-1/' wd = WebDownloader(url) wd.parse_html() pprint(wd.links) wd.download()
超链接类型
其实很多网址可能包含pdf文件,其中有很多情况,本文暂涵盖了小部分,之后再继续完善。
- 网址后缀为 .pdf
如 http://arxiv.org/pdf/1310.4546.pdf,这种网址可直接抓取并写入本地文件。
- 网址为预印本平台 arxiv.org
如 https://arxiv.org/abs/1502.01852,这种网址不是直接的pdf文件下载链接,将字符串中的*abs*替换成*.pdf*即可,如下
url = 'https://arxiv.org/abs/1502.01852' print('before: {}'.format(url)) url = url.replace('abs','pdf') print('after: {}'.format(url))
- 网址为康奈尔大学预印本平台 cornell.edu
如 http://arxiv-web3.library.cornell.edu/abs/1502.01852, 这是康奈尔大学预印本平台,但实际上网站会重定向到预印本平台arxiv.org https://arxiv.org/abs/1502.01852,所以有两种方法:(1)提取原网址中的编号*1502.01852*(2)将网址中的*abs*替换成pdf(同上)。
url = 'http://arxiv-web3.library.cornell.edu/abs/1502.01852' print('before: {}'.format(url)) url = 'https://arxiv.org/pdf/' + url.split('/')[-1] print('after method 1: {}'.format(url)) url = url.replace('abs','pdf') print('after method 2: {}'.format(url))
- 网址为 sciencedirect 上的论文(非直接链接)
如 http://www.sciencedirect.com/science/article/pii/S0959438814000130,爬取方法待解决,之后再补充。
GitHub链接
等我把代码完善好再发布具体的链接 =。=,个人的GitHub网址如下:
-
excel 显示超链接_Java 编辑、删除Excel中的超链接
2020-12-28 01:45:05本文介绍如何编辑Excel文档中的超链接,包括编辑超链接显示文本、链接地址及删除指定超链接。使用免费版Excel类库工具,Free Spire.XLS for Java。Jar包获取可在官方网站下载,并解压将lib文件夹下的jar导入Java程序...本文介绍如何编辑Excel文档中的超链接,包括编辑超链接显示文本、链接地址及删除指定超链接。使用免费版Excel类库工具,Free Spire.XLS for Java。Jar包获取可在官方网站下载,并解压将lib文件夹下的jar导入Java程序;Maven程序中的jar导入参考这篇教程。
参考如下jar导入结果:
1. 编辑超链接
import com.spire.xls.*; import com.spire.xls.collections.HyperLinksCollection; public class ModifyHyperlink { public static void main(String[] args) { //加载Excel测试文档 Workbook wb = new Workbook(); wb.loadFromFile("test.xlsx"); //获取指定工作表 Worksheet sheet = wb.getWorksheets().get(0); //获取超链接,修改超链接本文、链接地址 HyperLinksCollection link = sheet.getHyperLinks(); link.get(0).setTextToDisplay("新超链接显示文本"); link.get(0).setAddress("https://cn.bing.com/"); //保存文档 wb.saveToFile("ModifyHyperlink.xlsx"); wb.dispose(); } }
2. 删除超链接
import com.spire.xls.*; public class RemoveHyperlink { public static void main(String[] args) { //加载包含超链接的Excel文档 Workbook workbook = new Workbook(); workbook.loadFromFile("AddHyperlink.xlsx"); //获取第一个工作表 Worksheet sheet = workbook.getWorksheets().get(0); //移除超链接,并保留文本信息 sheet.getHyperLinks().removeAt(0); //保存文档 workbook.saveToFile("RemoveHyperlink.xlsx", ExcelVersion.Version2013); workbook.dispose(); } }
-
Java 编辑、删除Excel中的超链接
2020-11-09 15:23:48本文介绍如何编辑Excel文档中的超链接,包括编辑超链接显示文本、链接地址及删除指定超链接。使用免费版Excel类库工具,Free Spire.XLS for Java。Jar包获取可在官方网站下载,并解压将lib文件夹下的jar导入Java程序...本文介绍如何编辑Excel文档中的超链接,包括编辑超链接显示文本、链接地址及删除指定超链接。使用免费版Excel类库工具,Free Spire.XLS for Java。Jar包获取可在官方网站下载,并解压将lib文件夹下的jar导入Java程序;Maven程序中的jar导入参考这篇教程。
参考如下jar导入结果:
1. 编辑超链接
import com.spire.xls.*; import com.spire.xls.collections.HyperLinksCollection; public class ModifyHyperlink { public static void main(String[] args) { //加载Excel测试文档 Workbook wb = new Workbook(); wb.loadFromFile("test.xlsx"); //获取指定工作表 Worksheet sheet = wb.getWorksheets().get(0); //获取超链接,修改超链接本文、链接地址 HyperLinksCollection link = sheet.getHyperLinks(); link.get(0).setTextToDisplay("新超链接显示文本"); link.get(0).setAddress("https://cn.bing.com/"); //保存文档 wb.saveToFile("ModifyHyperlink.xlsx"); wb.dispose(); } }
2. 删除超链接
import com.spire.xls.*; public class RemoveHyperlink { public static void main(String[] args) { //加载包含超链接的Excel文档 Workbook workbook = new Workbook(); workbook.loadFromFile("AddHyperlink.xlsx"); //获取第一个工作表 Worksheet sheet = workbook.getWorksheets().get(0); //移除超链接,并保留文本信息 sheet.getHyperLinks().removeAt(0); //保存文档 workbook.saveToFile("RemoveHyperlink.xlsx", ExcelVersion.Version2013); workbook.dispose(); } }
相关文章推荐:Java 添加超链接到Excel文档
-
如何解决微信端直接跳WAP端
2019-02-22 01:28:28现在几乎所有人都使用微信APP,而且对于要做推广的人,所有...原理很简单,只需要在跳转平台创建一条落地页URL,获取一条超链接即可,创建后分配给你一个可以唤起微信的超链接,获取到的超链接放到你网站即可。猴子数... -
新手建网站的步骤及注意事项
2016-05-13 11:47:33建网站是指因特网上一块固定的面向全世界发布消息的地方,建网站由(也就是网站地址)、程序和网站空间构成,通常包括主页和其他具有超链接文件的页面。网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布... -
Jsp或JS获取用户来源
2012-03-05 13:32:22Jsp或JS获取用户来源 问题描述 ...如何知道用户是从什么地方... 用户是通过某博客的超链接来到我们的网站,那么用户来源就是“某博客地址”; Jsp获取用户来源 <%= request.getHead... -
jsoup爬取分页的内容
2017-12-13 10:43:29网站显示内容基本上都是通过分页来显示,我们用jsoup简单爬取页面仅能获取本页的内容,对于其他页面的内容该如何爬取?其实很简单,就是通过检查下一页的链接地址,基本上下一页的超链接地址都是有规律的,基本上都... -
django中url反向解析详解。
2019-03-16 12:20:16动态获取网站地址,如果改变了网址,我们也需要修改,但是如果使用了反向解析,动态获取的情况下 不管对方如何变化,我们都能拿到。 如下是反向解析举例: 我们在默认的url跟目录的配置如下: ... -
真心求教一个问题,关于编写web的外挂工具app或者桌面程序,具体请进,真心谢谢了
2016-02-02 06:11:26(1)我该如何获取请求的http地址,因为有些请求我是可以在浏览器的开发者工具上根据显示的东西搜索并复制它的url,或者直接点开超链接,根据地址栏显示的url,脑补一下,做个拼接就好。但我想应该有些情况下的http... -
小甲鱼 ---------------scrapy 框架
2020-08-13 08:43:04使用Scrapy 抓取一个网站一共需要四个步骤...我们想获取 标题 和 超链接 和 描述 接下来是编写 爬虫类Spider,spider 是用户编写用于从网站上爬取数据的类 其包含了一个用于下载的初始URL,然后是如何 更进网页中的链接 -
news-please:news-please-一个集成的网络爬虫和信息提取器,用于刚刚可用的新闻-源码
2021-02-03 15:20:54它可以递归地跟踪内部超链接并阅读RSS feed,以获取最新的和较旧的存档文章。 您只需要提供新闻网站的根URL即可完全对其进行爬网。 news-please结合了多种最新的库和工具的功能,例如 , 和。 news-please还具有库... -
Web前端-01
2020-07-01 21:08:37Servlet(学习如何获取用户请求以及如何对该请求进行响应) vrd项目 web前端 HTML (学习如何搭建页面结构和内容) CSS(学习如何美化页面) JavaScript (学习如何给页面添加动态的效果) jQuery 这是一个JavaScript语言... -
C++网络爬虫项目
2018-07-04 00:59:17以上所述是搜索引擎如何获取并存储海量的网页相关信息。这些功能因为不需 要实时计算,所以可以被看作是搜索引擎的后台计算系统。搜索引擎的首要目 标当然是为用户提供准确而全面的搜索结果,因此响应用户查询并实时... -
21天学通javascript(第2版)(顾宁燕) pdf扫描版
2014-09-26 12:40:117.4.9 生成特定数据—获取数组中的一部分元素 151 7.4.10 置换数据—颠倒数组元素的顺序 151 7.4.11 数据排序—对数组元素进行排序 152 7.4.12 数据转换—将对象转换为本地字符串 154 7.5 小结 155 7.6 习题 ... -
Visual Basic开发实战1200例(第2卷)(完整版).(清华出版.孙秀梅.巩建华).part1
2016-06-15 00:31:36本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为核心,介绍了应用Visual Basic进行程序开发的多方面的知识和技巧,主要包括Visual Basic的多媒体开发、数据库应用、网络技术与Web开发、安全... -
Visual Basic开发实战1200例(第2卷)(完整版).(清华出版.孙秀梅.巩建华).part2
2016-06-15 00:34:01本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为核心,介绍了应用Visual Basic进行程序开发的多方面的知识和技巧,主要包括Visual Basic的多媒体开发、数据库应用、网络技术与Web开发、安全... -
《Java Web开发实战1200例(第I卷)》(清华出版.卢瀚.王春斌).part2 高清完整PDF版
2016-06-13 12:06:47实例053 设置超链接文字的样式 实例054 网页换肤 实例055 滚动文字 实例056 制作渐变背景 实例057 CSS控制绝对定位 实例058 CSS控制垂直居中 实例059 CSS实现的图文混排 3.2 表格样式 实例060 只有外边框的... -
MetInfo v5.2.8版本更新
2014-08-19 16:59:299.不同语言网站的首页链接都为默认首页链接; 10.搜索页面搜索出的图片模块内容地址出错; 11.安装包默认底部信息错误显示为2008-2012; 12.英文后台会员管理的部分文字为中文; 13.在线交流,淘宝旺旺在部分浏览器... -
Java Web编程宝典-十年典藏版.pdf.part2(共2个)
2013-05-20 11:41:023.10.2 如何在超链接中传递多个参数 3.10.3 重定向后出现404错误 3.11 精彩回顾 第4章 体验面向对象 1IavaBean技术 4.1 本章学习任务 4.1.1 本章知识体系 4.1.2 实例开发任务 4.2 JavaBean简介 4.2.1 JavaBean产生... -
Java Web编程宝典-十年典藏版.pdf part1(共2个)
2013-05-20 11:39:123.10.2 如何在超链接中传递多个参数 3.10.3 重定向后出现404错误 3.11 精彩回顾 第4章 体验面向对象 1IavaBean技术 4.1 本章学习任务 4.1.1 本章知识体系 4.1.2 实例开发任务 4.2 JavaBean简介 4.2.1 JavaBean产生... -
思科网络技术学院教程CCNA1
2013-05-28 06:37:53本书是如何组织的 本书主要标题的次序与网络学院CCNA 1课程完全一致。在线教程有11个模块,本书也有11章与之对应。 为了更便于将此书作为课程的指导用书,在每一章内,主要标题与在线课程每个模块的主要部分... -
C#开发实战1200例(第1卷).(清华出版.王小科.王军.扫描版).part1
2016-06-16 20:55:43实例023 使用typeof关键字获取类的内部结构 实例024 使用using关键字有效回收资源 实例025 使用is关键字检查对象是否与给定类型兼容 实例026 使用as关键字将对象转换为指定类型 2.4 流程控制语句的使用 实例027... -
C#开发实战1200例(第1卷).(清华出版.王小科.王军.扫描版).part2
2016-06-16 20:59:52实例023 使用typeof关键字获取类的内部结构 实例024 使用using关键字有效回收资源 实例025 使用is关键字检查对象是否与给定类型兼容 实例026 使用as关键字将对象转换为指定类型 2.4 流程控制语句的使用 实例027... -
C#开发实战1200例(第1卷).(清华出版.王小科.王军.扫描版).part3
2016-06-16 21:02:21实例023 使用typeof关键字获取类的内部结构 实例024 使用using关键字有效回收资源 实例025 使用is关键字检查对象是否与给定类型兼容 实例026 使用as关键字将对象转换为指定类型 2.4 流程控制语句的使用 实例027... -
软件工程师典藏:C#程序开发范例宝典(第2版).part01
2012-11-11 20:05:51实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘属性 ... -
C#程序开发范例宝典(第2版).part02
2012-11-12 07:55:11实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘... -
C#程序开发范例宝典(第2版).part13
2012-11-12 20:17:14实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘... -
C#程序开发范例宝典(第2版).part08
2012-11-12 08:04:21实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘... -
C#程序开发范例宝典(第2版).part03
2012-11-12 07:56:38实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例233 进入Windows系统前发出警告 325 实例234 实现注销、关闭和重启计算机 326 7.2 获得磁盘...
-
Linux文件空间大小查询
-
JavaScript DOM查询练习
-
RapidScada从入门到精通
-
2021-02-25
-
深究字符编码的奥秘,与乱码说再见
-
一参数谐波均值的尖锐功率均值边界
-
2021 年该学的 CSS 框架 Tailwind CSS 实战视频
-
MySQL 高可用工具 DRBD 实战部署详解
-
全国疫情出示查看源码.rar
-
java按季还款_java按季度生成list
-
Kafka实现高性能的方法
-
一天学完MySQL数据库
-
如何解决机器学习中数据不平衡问题
-
基于python的dango框架购物商城毕业设计毕设源代码使用教程
-
电流调制法制备聚片多畴LiNbO
-
基于电商业务的全链路数据中台落地方案(全渠道、全环节、全流程)
-
C++MFC开发远程控制软件教程(VS2013)
-
iptables 企业级防火墙配置(四表五链)
-
Datagrip连接数据库Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ prope
-
与eolinker api集成