2016专题训练II-黄华 网络爬虫
2016-07-21 13:34
351 查看
目标
编写一个网络爬虫程序,自动获取指定网址 http://acm.hdu.edu.cn/showproblem.php?pid=1001 页面中所关注的信息,该网址中 1001 为题目编号,可以修改为其他题目编号。要求获取的信息包括:l 题目;
l 时间限制;
l 内存限制;
l 提交总数;
l 通过的提交数;
l 题面描述;
l 输入;
l 输出;
l 输入样例;
l 输出样例;
l 作者;
提示:可以使用 Jsoup 等第三方组件。
注意:本题需通过文件打包的方式提交。
//这个题很简单。
在开始敲代码之前,先做准备工作
1,下载 JSON包引入Eclipse,作为第三方库(不知咋上传,百度一下吧)
2,打开一个浏览器,访问你要抓取数据的网页(这里是杭电oj ),然后按 F12 查看网页布局,这里如果你熟悉 php html啥的就更简单了,先把要抓取的数据的特性记下来
3,开始写代码
https://github.com/RenjiaLu9527/Something_i/blob/master/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB
我写的比较简陋,不过大致熟悉了爬虫的流程,
这里借鉴一下
小M的博客园
的文章,感谢原文链接:http://www.cnblogs.com/xiaoMzjm/p/3899366.html?utm_source=tuicool&utm_medium=referral
select详解 | |||
描述 | 测试的HTML代码 | select写法 | 结果 |
通过 标签名 来查找 | <span>33</span> <span>25</span> | Elements elements = doc.select("span"); 注:通过标签来查找,直接写 "标签名" 就好,不需要尖括号。 | 33 25 |
通过 id 来查找 | <span id=\"mySpan\">36</span> <span>20</span> | Elements elements = doc.select("#mySpan"); 注:通过id来查找,使用方法跟css指定元素一样,用# | 36 |
通过 class名 来查找 | <span class=\"myClass\">36</span> <span>20</span> | Elements elements = doc.select(".myClass"); 注:通过id来查找,使用方法跟css指定元素一样,用 . | 36 |
利用标签内 属性名 查找元素 | <span class=\"class1\" id=\"id1\">36</span> <span class=\"class2\" id=\"id2\">36</span> | Elements elements = doc.select("span[class=class1]span[id=id1]"); 注:规则为 标签名【属性名=属性值】,标签名可写可不写,多个属性即多个【】,如上。 | 36 |
利用标签内 属性名前缀 查找元素 | <span class=\"class1\" >36</span> <span class=\"class2\" >22</span> | Elements elements = doc.select("span[^cl]"); 注:规则为 标签名【^属性名前缀】,标签名可写可不写,多个属性即多个【】。 | 36 22 |
利用标签内 属性名+正则表达式 查找元素 | <span class=\"ABC\" >36</span> <span class=\"ADE\" >22</span> | Elements elements = doc.select("span[class~=^AB]"); 注:规则为 标签名【属性名~=正则表达式】,以上的正则表达式的意思是查找以class值以AB为开头的标签,标签名可写可不写,多个属性即多个【】 | 36 |
利用标签 文本包含某些内容 来查找 | <span>36</span> <span>22</span> | Elements elements = doc.select("span:contains(3)"); 注:规则为 标签名:contains(文本值) | 36 |
利用标签 文本包含某些内容+正则表达式 来查找 | <span>36</span> <span>22</span> | Elements elements = doc.select("span:matchesOwn(^3)"); 注:规则为 标签名:matchesOwn(正则表达式),以上的正则表式的意思是以文本值以3为开头的标签 | 36 |
select详解 | |||
描述 | 测试的HTML代码 | select写法 | 结果 |
通过 标签名 来查找 | <span>33</span> <span>25</span> | Elements elements = doc.select("span"); 注:通过标签来查找,直接写 "标签名" 就好,不需要尖括号。 | 33 25 |
通过 id 来查找 | <span id=\"mySpan\">36</span> <span>20</span> | Elements elements = doc.select("#mySpan"); 注:通过id来查找,使用方法跟css指定元素一样,用# | 36 |
通过 class名 来查找 | <span class=\"myClass\">36</span> <span>20</span> | Elements elements = doc.select(".myClass"); 注:通过id来查找,使用方法跟css指定元素一样,用 . | 36 |
利用标签内 属性名 查找元素 | <span class=\"class1\" id=\"id1\">36</span> <span class=\"class2\" id=\"id2\">36</span> | Elements elements = doc.select("span[class=class1]span[id=id1]"); 注:规则为 标签名【属性名=属性值】,标签名可写可不写,多个属性即多个【】,如上。 | 36 |
利用标签内 属性名前缀 查找元素 | <span class=\"class1\" >36</span> <span class=\"class2\" >22</span> | Elements elements = doc.select("span[^cl]"); 注:规则为 标签名【^属性名前缀】,标签名可写可不写,多个属性即多个【】。 | 36 22 |
利用标签内 属性名+正则表达式 查找元素 | <span class=\"ABC\" >36</span> <span class=\"ADE\" >22</span> | Elements elements = doc.select("span[class~=^AB]"); 注:规则为 标签名【属性名~=正则表达式】,以上的正则表达式的意思是查找以class值以AB为开头的标签,标签名可写可不写,多个属性即多个【】 | 36 |
利用标签 文本包含某些内容 来查找 | <span>36</span> <span>22</span> | Elements elements = doc.select("span:contains(3)"); 注:规则为 标签名:contains(文本值) | 36 |
利用标签 文本包含某些内容+正则表达式 来查找 | <span>36</span> <span>22</span> | Elements elements = doc.select("span:matchesOwn(^3)"); 注:规则为 标签名:matchesOwn(正则表达式),以上的正则表式的意思是以文本值以3为开头的标签 | 36 |
相关文章推荐
- 我投了份简历,接到了十八个骚扰电话
- 基于C#实现网络爬虫 C#抓取网页Html源码
- 利用C#实现网络爬虫
- 使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
- apache禁止搜索引擎收录、网络爬虫采集的配置方法
- Java实现爬虫给App提供数据(Jsoup 网络爬虫)
- python3简单实现微信爬虫
- python 网络爬虫初级实现代码
- Python网络爬虫实例讲解
- python使用rabbitmq实现网络爬虫示例
- 垂直型爬虫架构设计(1)
- 垂直型爬虫架构设计(2)
- Python网络爬虫实例讲解
- 小编详解网络蜘蛛的安全隐患及预防方法
- 如何在神箭手云爬虫上写爬虫
- 网络爬虫源码分享
- Python即时网络爬虫项目启动说明
- Python使用xslt提取网页数据
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- 1分钟快速生成用于网页内容提取的xslt