【C# - 爬虫】使用Selenium实现爬虫,获取近七天天气信息(包含完整代码)



前言

  • 提示:爬虫本身并不违法,所有爬虫都应遵守Robots协议,虽然Robots协议并不是强制性要求,但由此可能引发法律纠纷等问题。
  • 如非必要,我们在使用爬虫过程中,也应该尽量避免大量,快速反复请求网站,造成网站资源占用,甚至造成网站服务器的宕机,请文明使用爬虫;
  • 需要了解更多Robots协议详情请参考:Robots协议
  • 想要查看网站Robots协议,可以在网站域名后添加/robots.txt;例如CSDN的Robots协议就是:https://www.csdn.net/robots.txt

一、Selenium简介

  • Selenium开始并不是用于爬虫,而是一款自动化测试工具,它可以直接运行在浏览器中,模拟用户操作,支持的浏览器包括IE(7, 8, 9, 10, 11),Firefox,Safari,Google Chrome,Opera,Edge等。
  • 这个工具的主要功能包括:测试与浏览器的兼容性(测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上)。测试系统功能(创建回归测试检验软件功能和用户需求)。
  • 支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。

二、浏览器驱动

1.浏览器驱动参考

浏览器 支持的操作系统 维护者 下载 问题追溯
Chromium/Chrome Windows/macOS/Linux Google 下载 Issues
Firefox Windows/macOS/Linux Mozilla 下载 Issues
Edge Windows/macOS Microsoft 下载 Issues
Internet Windows Windows/macOS/Linux Selenium Project 下载 Issues
Safari macOS High Sierra and newer Apple 内置 Issues

注意: Opera驱动程序不支持w3c语法, 因此我们建议使用chromedriver来处理Opera. 请参见Opera浏览器的代码示例
下载版本以自己安装的浏览器版本为主,我这里以 Windows10 Chrome 103.0.5060.134为例

2.Windows下载Chrome驱动

在这里插入图片描述


三、代码实现

1.新建控制台项目WeatherWebCrawler

在这里插入图片描述

2.选择.NET 6.0

.NET 6.0和.NET Core 3.1最大区别是Program.cs中Main函数的取消,该代码在NET Core 3.1中也可使用
在这里插入图片描述

3.安装NuGet包

命令:Install-Package Selenium.WebDriver -Version 4.3.0
在这里插入图片描述

4.将下载好的驱动放到项目生成目录下

没有目录的把项目生成下就有了,注意不是项目根目录,而是项目生成的目录下;
或者知道自己放在哪个目录,代码中driverServicePath改成文件夹路径也行,路径只到文件夹,不要包含驱动文件
在这里插入图片描述

5.编写代码

网站地址
首先拿到页面的url,根据需求选择想要城市的url,当前也可以拿到全部城市,用xml或者配置文件可动态选择,这里就不过多展开,等有时间后面会单独出一篇文章详解,代码中是以我当前所在地为例。

  • ①选择自己的需求城市
  • ②选择七天
  • ③复制网站地址
    在这里插入图片描述
    代码实现打开浏览器,并进入网站
using OpenQA.Selenium.Chrome;

//驱动路径(注意不要包含驱动文件)
string driverServicePath = Path.Combine(Directory.GetCurrentDirectory(), "chromedriver_win32");
//创建驱动服务
ChromeDriverService service = ChromeDriverService.CreateDefaultService(driverServicePath);
//实例化浏览器驱动
ChromeDriver driver = new ChromeDriver(service);

//页面地址
string url = "http://www.weather.com.cn/weather/101280601.shtml";
//打开页面
driver.Navigate().
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小呆瓜耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值