可怕:网站强引蜘蛛代码怎么写,你是如何高效写“爬虫”的?

优采云 发布时间: 2022-09-23 08:09

  可怕:网站强引蜘蛛代码怎么写,你是如何高效写“爬虫”的?

  当然,我不需要编写代码。有现成的爬虫软件可以直接使用,不需要一行行代码。下面我简单介绍一下两个爬虫软件——Excel和优采云,这两个软件都可以快速爬取网页数据,而且使用起来也很简单网站如何编写强被引蜘蛛代码:

  Excel 使用 Excel 来抓取网页数据,大多数人应该都听说过或使用过。对于一些简单常规的静态网页数据,比如表格数据,可以直接使用Excel外部链接导入。让我简单介绍一下这种方法。:

  1.这里以爬取/rank上的PM2.5个数据为例,都是正则表数据,如下:

  

  2.新建一个excel文件并打开,点击菜单栏中的“数据”->“来自网站”,如下:

  3.然后在弹窗中输入上述网页链接地址,点击“前往”按钮,网页会自动打开,如下:

  4.最后我们点击右下角的“导入”按钮,将网页中的表格数据导入到Excel文件中,如下,非常方便,不需要我们再次组织:

  

  优采云这是一款比较专业的爬虫软件。对于数据复杂且动态加载的网页,可以使用本软件进行爬取。先简单介绍一下这款软件:

  1.首先,下载安装优采云软件,可以直接从官网下载,如下:

  2.安装完成后,我们就可以使用这个软件来抓取网页数据了。首先,打开软件,在首页选择“自定义采集”,如下:

  3. 然后在任务页面,进入我们需要爬取的网页。下面是一个在智联招聘上爬取数据的例子,如下:

  4.点击保存按钮,会自动跳转到对应的网页并打开,效果如下,这里我们可以直接选择需要抓取的网页数据,很简单,跟着操作就可以了提示并一步步往下走:

  5.最后点击保存并开始采集,启动本地采集,就可以自动爬取刚才选中的数据了,如下:

  这里也可以根据自己的需要选择数据导出格式,如Excel、CSV、HTML、数据库等,如下:

  至此,我们已经完成了使用Excel和优采云抓取网页数据。总的来说,这两款爬虫软件都很好用,而且容易学习和掌握。只要熟悉操作,就能很快掌握。当然,如果你有一定的编程基础,也可以编程。可以实现网络爬虫,如Java、Python等,有兴趣可以自己试试。网上也有丰富的教程和资料供参考。希望以上分享的内容对您有所帮助。也欢迎评论。信息。

  官方数据:php是这样子模拟登录并抓取数据的

  点击进入“PHP开源社区”,免费获取高级访谈、文档、视频资源。使用 PHP 的 Curl 扩展库,可以模拟登录,捕获一些只有在用户账户登录后才能查看的数据。具体实现过程如下

  1.首先需要分析对应登录页面的html源码,获取一些必要的信息:1)登录页面的地址;2)登录页面的地址验证码;3)登录表单中需要提交的各个字段的名称和提交方式; 4)登录表单提交的地址; 5)另外,你需要知道要抓取的数据的地址。

  2. 获取 cookie 并存储(对于 网站 使用 cookie 文件)

  $login_url = 'http://www.xxxxx';  //登录页面地址<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$cookie_file = dirname(__FILE__)."/pic.cookie";  //cookie文件存放位置(自定义)<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$ch = curl_init();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_URL, $login_url);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_HEADER, 0);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_exec($ch);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_close($ch);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  3.获取验证码并存储(供网站使用验证码)

  $verify_url = "http://www.xxxx";   //验证码地址<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$ch = curl_init();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_URL, $verify_url);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_HEADER, 0);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$verify_img = curl_exec($ch);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_close($ch);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$fp = fopen("./verify/verifyCode.png",'w');  //把抓取到的图片文件写入本地图片文件保存<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />fwrite($fp, $verify_img);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />fclose($fp);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  

  说明:由于无法实现对验证码的识别,所以我这里的做法是将验证码图片抓取到本地文件中,然后在自己项目的html页面中展示出来,让用户用户填写账号、密码、验证码,点击提交按钮,进入下一步。

  4. 模拟提交登录表单:

  $ post_url = 'http://www.xxxx';   //登录表单提交地址<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$post = "username=$account&password=$password&seccodeverify=$verifyCode";//表单提交的数据(根据表单字段名和用户输入决定)<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$ch = curl_init();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_URL, $ post_url);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_HEADER, false);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_POSTFIELDS, $post);     //提交方式为post<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_exec($ch);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_close($ch);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  5. 获取数据:

  $data_url = "http://www.xxxx";   //数据所在地址<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$ch = curl_init();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_URL, $data_url);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_HEADER, false);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_HEADER, 0);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />$data = curl_exec($ch);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_close($ch);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  至此,数据所在的页面已经被捕获并存储在字符串变量$data中。需要注意的是,抓取的是一个网页的html源代码,也就是说这个字符串不仅收录了你想要的数据,还收录了很多html标签和其他你不想要的东西。所以如果你想从中提取出你需要的数据,还需要分析存放数据的页面的html代码,然后结合字符串操作函数、正则匹配等方法,提取出你想要的数据。上述方法对一般使用http协议的网站有效。但是如果你想用https协议模拟使用网站登录,则需要添加如下处理:1.跳过https验证:

  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  

  2.使用用户代理:

  $UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; <br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />.NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705;<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /> .NET CLR 1.1.4322)';<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  注意:如果不添加这些处理,模拟登录将不会成功。使用上面的程序模拟登录网站一般是成功的,但实际上还是需要考虑模拟登录网站的具体情况。例如:有的网站码不一样,所以你抓取的页面是乱码,这时需要进行码转换,如:$data = iconv("gb2312", "utf-8",$data ) ;, 将 gbk 编码转换为 utf8 编码。还有一些网站对安全性要求更高。建议此内容仅供学习参考!

  *免责声明:本文整理于网络,版权归原作者所有。如来源信息有误或侵权,请联系我们删除或授权

  END<p style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;clear: both;min-height: 1em;"><br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /><br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />PHP开源社区

  扫描关注  进入”PHP资料“

  免费获取进阶

  面试、文档、视频资源    

  <br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线