c爬虫抓取网页数据(网页源码的获取及获取、提取、所得结果的整理)

优采云 发布时间: 2021-12-28 20:17

  c爬虫抓取网页数据(网页源码的获取及获取、提取、所得结果的整理)

  获取数据是数据分析的重要组成部分,网络爬虫是获取数据的重要渠道之一。有鉴于此,我拿起了 Python 工具,为网络爬虫开辟了道路。

  本文使用的版本为python3.5,旨在抓取证券之星当天所有A股数据。程序主要分为三个部分:网页源代码的获取、所需内容的提取、获取结果的排序。

  一、获取网页源码

  很多人喜欢使用python爬虫的原因之一就是它好用。只需要下面几行代码就可以抓取大部分网页的源码。

  按Ctrl+C复制代码

  按Ctrl+C复制代码

  虽然抓取一个页面的源代码很容易,但是爬取一个网站中的大量网页源代码往往会被服务器拦截,突然觉得这个世界充满了恶意。于是我开始研究突破反爬虫限制的技术。

  1.伪装漫游者标头

  很多服务器使用浏览器发送给它的headers来确认他们是否是人类用户,所以我们可以通过模仿浏览器的行为构造请求headers向服务器发送请求。服务器将识别其中一些参数以识别您是否是人类用户。很多网站都会识别User-Agent参数,所以最好带上请求头。一些高警觉性的网站也可能通过其他参数来识别,比如Accept-Language来识别你是否是人类用户,一些具有防窃取功能的网站也必须带上referer参数等等。

  2. 随机生成UA

  证券之星只需要带User-Agent参数就可以抓取页面信息,但是服务器连续抓取几个页面后就被服务器屏蔽了。所以我决定模拟不同的浏览器在每次抓取数据时发送请求,并且服务器通过User-Agent识别不同的浏览器,所以每次抓取一个页面时,可以随机生成不同的UA结构头来请求服务器。

  3.减慢爬行速度

  虽然我模拟了从不同浏览器爬取数据,但发现在某些时间段内,可以爬取数百页的数据,但有时只能爬取十几页。服务器似乎会根据您的访问频率来识别您。它是人类用户还是网络爬虫。所以每次我抓取一个页面时,我都会让它随机休息几秒钟。添加这段代码后,我可以在每个时间段爬取大量*敏*感*词*。

  4.使用代理IP

  没想到,在公司的时候,程序测试成功,回到卧室,发现只能取几页,被服务器屏蔽了。吓得我赶紧问杜娘。我了解到服务器可以识别您的IP并记录对该IP的访问次数。可以使用高度隐蔽的代理IP,并在爬取过程中不断更改,这样服务器就查不到是谁了。才是真正的凶手。这项工作尚未完成。如果你想知道发生了什么,请听下一个细分。

  5.其他突破反爬虫限制的方法

  许多服务器在接受浏览器请求时会向浏览器发送一个 cookie 文件,然后使用 cookie 来跟踪您的访问。为防止服务器将您识别为爬虫,建议您携带cookie一起爬取数据;如果为了防止你的账号被黑,你可以申请大量账号然后爬进去。这涉及到模拟登录、验证码识别等知识,暂时不赘述。 .. 总之,对于网站站长来说,有些爬虫真的很烦人,所以他们会想很多办法限制爬虫的进入,所以强制进入后我们要注意一些礼仪,以免拖累别人网站。

  二、 提取所需内容

  获取到网页的源代码后,我们就可以从中提取出我们需要的数据了。从源代码中获取所需信息的方法有很多,使用正则表达式是比较经典的方法之一。我们先来看一下采集

到的网页的部分源码。

  

  

  为了减少干扰,我首先使用正则表达式从整个页面源代码中匹配上面的body部分,然后从body部分匹配每只股票的信息。代码显示如下。

<p>pattern=re.compile(\'(.*?)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线