浏览器抓取网页(TianFang-使用ScrapySharp快速从网页中采集数据这里的CSS选择器)
优采云 发布时间: 2021-09-18 04:24浏览器抓取网页(TianFang-使用ScrapySharp快速从网页中采集数据这里的CSS选择器)
我们需要使用市、区、县居委会对应的区号,所以我们可以在统计局的网页上找到这些数据。我们使用htmlagilitypack和scrapsharp。因为这也是第一次从网页捕获数据,所以我们不熟悉htmlagilitypack和scrapsharp的使用。在此期间,我们遇到了许多问题。这里是一个总结
对于htmlagilitypack和scrapysharp的使用,互联网上有很多演示。然而,看起来他们基本上是同一篇文章,我不知道谁是原作者。如果你把天方的博客放在这里,你就不会复制演示,而是附上一个链接,如果你需要的话,你可以看一看
天方-使用scrapysharp从网页中快速提取采集数据
这里CSS选择器的使用非常简单,就像我们编写CSS来定位HTML元素一样。统计局网站的内容如下图所示
一行中有四组表,我们获取的数据不仅仅是一个页面的内容,因此我们只能在这里找到统一的规律。最后,我们直接使用简单而粗略的方法var divs=HTML。Cssselect(“table tr”)//直接获取最低表的tr
在获得相应的值后,会遇到另一个问题。无论捕获的数据是读取到控制应用程序控制台还是保存在文本中,中文读取都是一个问号。最后,我们发现这是格式编码的问题。演示中网页的格式编码是UTF-8,scrapysharp捕获的默认格式编码也应该是UTF-8,所以不会有问题,统计局的编码格式是gbk2312。由于请求的捕获数据没有使用正确的编码格式,因此捕获的数据会变得混乱
如前所述,百度搜索基本上是天方的博客文章。类似的问题根本没有解决方案,也找不到scrapysharp的使用文档。最后,在一个边际的文章. 代码如下
到目前为止,web内容的捕获基本上是成功的,因此启动该程序并让它捕获数据
但是,在运行程序的过程中遇到的一个问题是,有时网络不稳定或访问网站太频繁,导致502错误,程序将报告异常。我的解决方案是使用try-catch抓取网页内容。如果不正常,则为内容分配一个空字符串,并让其继续运行,因此没有问题,但是,这不是一个好的解决方案。然而,目前的容量是有限的,所以我们只能先使用它