黑马程序员_网络爬虫

本文介绍如何使用HtmlUnit开源项目编写简单的网页爬虫程序。通过Java代码实现网页内容抓取,包括关闭CSS和JavaScript功能、模拟不同浏览器环境及通过ID或XPath定位页面元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  ——- android培训java培训、期待与您交流! ———

发现一个好玩的东西,利用HtmlUnit开源项目写简单爬虫

HtmlUnit其实就是一个后台运行的JAVA浏览器,便捷,高效。
HtmlUnit请自行GOOGLE下载
参考代码

public class test{
    WebClient webClient=new WebClient();
    webClient.getOptions().setCssEnabled(false);//关闭css
    webClient.getOptions().setJavaScriptEnabled(false);//关闭JavaScript 如需运行脚本可设置为true
    final HtmlPage page=webClient.getPage("http://www.163.com");//设置需抓取的网站地址
    System.out.println(page.asText());//输入打印
    webClient.closeAllWindows();
}

模拟特定浏览器,也可以指定浏览器的相应版本(HtmlUnit最新版2.13现在可以模拟的浏览器有Chrome/FireFox/IE)

//模拟chorme浏览器,其他浏览器请修改BrowserVersion.后面
WebClient  webClient=new WebClient(BrowserVersion.CHROME);

查找特定元素,通过get或者XPath可以从HtmlPage中获得特定的Html元素,如下例子

方法一,通过get方法获取
HtmlPage page=webClient.getPage("http://www.163.com");
HtmlDivision div=(HtmlDivision)page.getElementById("hed");


方法二,通过XPath获取,XPath通常用于无法通过Id搜索,或者需要更为复杂的搜索时,XPath的相关教程自行GOOGLE
//同样可以打印出hed的内容,//div中//表示搜索整个文档中的div,并将这些div
//放入list中,然后获取第一个div
final HtmlDivision div = (HtmlDivision) page.getByXPath("//div").get(0);
System.out.println(div.asXml());
### Python 网络爬虫基础教程 #### 初识爬虫 网络爬虫是一种按照特定规则自动请求万维网网站并提取数据的程序或脚本[^1]。这种工具可以替代人工收集信息,能更高效地获取和利用互联网上的公开数据。 #### 爬虫的工作原理和技术 为了理解如何构建一个简单的爬虫,了解其工作流程至关重要。通常情况下,爬虫会从给定的一个或多个起始URL出发,通过HTTP/HTTPS协议向服务器发送请求来获取网页内容;接着分析这些HTML文档以找到链接和其他感兴趣的数据项,并重复上述过程直至达到预设的目标数量或其他终止条件[^3]。 #### 实现第一个简单爬虫实例 下面是一个非常基本的例子,展示了怎样使用`requests`库发起GET请求并打印响应体: ```python import requests url = 'http://example.com' response = requests.get(url) print(response.text) ``` 这段代码实现了最基本的网页抓取功能——访问指定网址并将返回的内容显示出来。对于更加复杂的场景,则可能涉及到更多的技术和方法论,比如处理JavaScript渲染后的动态加载内容、模拟登录状态等高级特性。 #### 数据解析技巧 当获得了完整的HTML源码之后,下一步就是从中抽取出有用的信息点了。这里推荐采用BeautifulSoup这样的第三方库来进行DOM树结构化操作,方便定位标签节点及其属性值: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') titles = soup.find_all('h2') # 获取所有的<h2>标题元素列表 for title in titles: print(title.string.strip()) ``` 此片段示范了如何查找页面内的所有二级标题(<h2>) 并逐个输出它们的文字部分。 #### 存储所获数据 最后一步是要考虑怎么保存下来已经抓到手的数据。最常见的方式莫过于写入文件系统或是数据库管理系统之中去了。例如CSV格式非常适合用来记录表格型别的资料集: ```python import csv with open('data.csv', mode='w', newline='', encoding='utf-8') as file: writer = csv.writer(file) for item in items_list: writer.writerow([item['name'], item['price']]) ``` 以上仅是对Python编写网络爬虫所需掌握基础知识的一部分概括介绍而已。如果想要深入学习更多有关于Scrapy框架的应用实践等内容的话,《解析Python网络爬虫核心技术》这本书籍提供了详尽指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值