精华内容
下载资源
问答
  • 网上爬虫的教程实在太多,去知乎上搜一下,估计能找到不下一百篇。大家乐此不疲地从互联网上抓取着一个又一个网站。但只要对方网站一更新,很可能文章里的方法不再有效。   每个网站抓取的代码各不相同,...

    网上爬虫的教程实在太多了,去知乎上搜一下,估计能找到不下一百篇。大家乐此不疲地从互联网上抓取着一个又一个网站。但只要对方网站一更新,很可能文章里的方法就不再有效了。

     

    每个网站抓取的代码各不相同,不过背后的原理是相通的。对于绝大部分网站来说,抓取的套路就那么一些。今天这篇文章不谈任何具体网站的抓取,只来说一个共性的东西:

     

    如何通过 Chrome 开发者工具寻找一个网站上特定数据的抓取方式。

     

    我这里演示的是 Mac 上的英文版 Chrome,Windows 中文版的使用方法是一样的。

     

    > 查看网页源代码

     

    在网页上右击鼠标,选择“查看网页源代码”(View Page Source),就会在新标签页中显示这个 URL 对应的 HTML 代码文本。

     

     

    此功能并不算是“开发者工具”一部分,但也很常用。这个内容和你直接通过代码向此 URL 发送 GET 请求得到的结果是一样的(不考虑权限问题)。如果在这个源代码页面上可以搜索到你要内容,则可以按照其规则,通过正则、bs4、xpath 等方式对文本中的数据进行提取。

     

     

    不过,对于很多异步加载数据的网站,从这个页面上并不能搜到你要的东西。或者因为权限、验证等限制,代码中获取到的结果和页面显示不一致。这些情况我们就需要更强大的开发者工具来帮忙了。

     

    > Elements

     

    在网页上右击鼠标,选择“审查元素”(Inspect),可进入 Chrome 开发者工具的元素选择器。在工具中是 Elements 标签页。

     

     

    Elements 有几个功能:

    • 选择元素:通过鼠标去选择页面上某个元素,并定位其在代码中的位置。

    • 模拟器:模拟不同设备的显示效果,且可以模拟带宽。

    • 代码区:显示页面代码,以及选中元素对应的路径

    • 样式区:显示选中元素所受的 CSS 样式影响

     

     

    从 Elements 工具里定位数据比我们前面直接在源代码中搜索要方便,因为你可以清楚看到它所处的元素结构。但这边特别提醒的是:

     

    Elements 里看到的代码不等于请求网址拿到的返回值

     

    它是网页经过浏览器渲染后最终呈现出的效果,包含了异步请求数据,以及浏览器自身对于代码的优化改动。所以,你并不能完全按照 Elements 里显示的结构来获取元素,那样的话很可能得不到正确的结果。

     

    > Network

     

    在开发者工具里选择 Network 标签页就进入了网络监控功能,也就是常说的“抓包”。

     

     

    这是爬虫所用到的最重要功能。它主要解决两个问题:

     

    1. 抓什么

    2. 怎么抓

     

    抓什么,是指对于那些通过异步请求获取到的数据,如何找到其来源。

     

    打开 Network 页面,开启记录,然后刷新页面,就可以看到发出的所有请求,包括数据、JS、CSS、图片、文档等等都会显示其中。从请求列表中可以寻找你的目标。

     

    一个个去找会很痛苦。分享几个小技巧:

     

    • 点击“搜索”功能,直接对内容进行查找。

    • 选中 Preseve log,这样页面刷新和跳转之后,列表不会清空。

    • Filter 栏可以按类型和关键字筛选请求。

     

    找到包含数据的请求之后,接下来就是用程序获取数据。这时就是第二个问题:怎么抓

     

    并不是所有 URL 都能直接通过 GET 获取(相当于在浏览器里打开地址),通常还要考虑这几样东西:

     

    1. 请求方法,是 GET 还是 POST。

    2. 请求附带的参数数据。GET 和 POST 传递参数的方法不一样。

    3. Headers 信息。常用的包括 user-agent、host、referer、cookie 等。其中cookie 是用来识别请求者身份的关键信息,对于需要登录的网站,这个值少不了。而另外几项,也经常会被网站用来识别请求的合法性。同样的请求,浏览器里可以,程序里不行,多半就是 Headers 信息不正确。你可以从 Chrome 上把这些信息照搬到程序里,以此绕过对方的限制。

     

    点击列表中的一个具体请求,上述信息都可以找到。

     

     

    找对请求,设对方法,传对参数以及 Headers 信息,大部分的网站上的信息都可以搞定了。

     

    Network 还有个功能:右键点击列表,选择“Save as HAR with content”,保存到文件。这个文件包含了列表中所有请求的各项参数及返回值信息,以便你查找分析。(实际操作中,我发现经常有直接搜索无效的情况,只能保存到文件后搜索)

     

     

    除了 Elements 和 Network,开发者工具中还有一些功能,比如:

     

    Sources,查看资源列表和调试 JS。

    Console,显示页面的报错和输出,并且可以执行 JS 代码。很多网站会在这里放上招聘的彩蛋(自己多找些知名网站试试)。

     

     

    但这些功能和爬虫关系不大。如果你开发网站和优化网站速度,就需要和其他功能打交道。这里就不多说了。

     

    总结一下,其实你就记住这几点:

     

    1. 查看源代码”里能看到的数据,可以直接通过程序请求当前 URL 获取。

    2. Elements 里的 HTML 代码等于请求返回值,只能作为辅助。

    3. 在 Network 里用内容关键字搜索,或保存成 HAR 文件后搜索,找到包含数据的实际请求

    4. 查看请求的具体信息,包括方法、headers、参数,复制到程序里使用。

     

    理解了这几步,大部分网上的数据都可以拿到,说“解决一半的问题”可不是标题党。

     

    当然咯,说起来轻松几点,想熟练掌握,还是有很多细节要考虑,需要不断练习。但带着这几点再去看各种爬虫案例,思路会更清晰。

    展开全文
  • 然后看其他的jsp文件,有的会出现这个问题,有的不会。 解决方法: 1.下载压缩包(百度云)或者 资源下载 2.解压文件,解压之后打开plugins(如图) 3.然后打开myeclipse的安装目录,打开plugins,找到这...

    今天在myeclipse中打开一个jsp文件,发现里面的代码一部分是有标签颜色的,一半就是纯黑色的(我的原因是因为JSP页面使用了 JSTL 标签)。

    然后看了其他的jsp文件,有的会出现这个问题,有的就不会。

    解决方法:

    1.下载压缩包(百度云)或者 资源下载

    2.解压文件,解压之后打开plugins(如图)

    3.然后打开myeclipse的安装目录,打开plugins,找到这个(org.eclipse.wst.html.core)jar包(后面数字有可能不一样)

    4.然后把下载下来的那个文件改成myeclipse安装目录的plugin文件夹下的这个文件的文件名,再替换进去(温馨提示:先备份原版的jar包)

    5.然后重启myeclipse

     

     

     

    展开全文
  • 问题解决-项目启动到一半突然卡住不动 今天写完一个业务准备用postman调试,出错改完bug后再次启动,发现日志打印到一半不再往下走 尝试各种解决办法:重新导入项目、删除target目录、重启IDE,都没得到解决。...

    问题解决-项目启动到一半突然卡住不动


    今天写完一个业务准备用postman调试,出错改完bug后再次启动,发现日志打印到一半不再往下走了
    在这里插入图片描述尝试了各种解决办法:重新导入项目、删除target目录、重启IDE,都没得到解决。最后查百度,终于找到了解决办法
    重新导入项目
    删除target目录
    重启IDE


    解决方案

    打开项目所在目录(右击项目目录,点击Show in Explorer)
    在这里插入图片描述
    删除目录下 .idea文件
    在这里插入图片描述
    最后再重新导入项目,然后启动项目就不会再卡住了。亲测有效


    展开全文
  • 网上爬虫的教程实在太多,知乎上搜一下,估计能找到不下一百篇。大家乐此不疲地从互联网上抓取着一个又一个网站。但只要对方网站一更新,很可能文章里的方法不再有效。 每个网站抓取的代码各不相同,不过背后...
        

    网上爬虫的教程实在太多了,知乎上搜一下,估计能找到不下一百篇。大家乐此不疲地从互联网上抓取着一个又一个网站。但只要对方网站一更新,很可能文章里的方法就不再有效了。

    每个网站抓取的代码各不相同,不过背后的原理是相通的。对于绝大部分网站来说,抓取的套路就那么一些。今天这篇文章不谈任何具体网站的抓取,只来说一个共性的东西:

    如何通过 Chrome 开发者工具 寻找一个网站上特定数据的抓取方式。

    (我这里演示的是 Mac 上的英文版 Chrome,Windows 中文版的使用方法是一样的。)

    > 查看网页源代码

    在网页上右击鼠标,选择“ 查看网页源代码 ”( View Page Source ),就会在新标签页中显示这个 URL 对应的 HTML 代码文本。

    此功能并不算是“开发者工具”一部分,但也很常用。这个内容和你直接通过代码向此 URL 发送 GET 请求得到的结果是一样的(不考虑权限问题)。如果在这个源代码页面上可以搜索到你要内容,则可以按照其规则,通过 正则、bs4、xpath 等方式对文本中的数据进行提取。

    不过,对于很多异步加载数据的网站,从这个页面上并不能搜到你要的东西。或者因为权限、验证等限制,代码中获取到的结果和页面显示不一致。这些情况我们就需要更强大的开发者工具来帮忙了。

    > Elements

    在网页上右击鼠标,选择“ 审查元素 ”( Inspect ),可进入 Chrome 开发者工具的 元素选择器 。在工具中是 Elements 标签页。

    Elements 有几个功能:

    • 选择元素 :通过鼠标去选择页面上某个元素,并定位其在代码中的位置。
    • 模拟器 :模拟不同设备的显示效果,且可以模拟带宽。
    • 代码区 :显示页面代码,以及选中元素对应的路径
    • 样式区 :显示选中元素所受的 CSS 样式影响

    从 Elements 工具里定位数据比我们前面直接在源代码中搜索要方便,因为你可以清楚看到它所处的元素结构。但这边特别提醒的是:

    Elements 里看到的代码不等于请求网址拿到的返回值

    它是网页经过浏览器渲染后最终呈现出的效果,包含了异步请求数据,以及浏览器自身对于代码的优化改动。所以,你并不能完全按照 Elements 里显示的结构来获取元素,那样的话很可能得不到正确的结果。

    > Network

    在开发者工具里选择 Network 标签页就进入了网络监控功能,也就是常说的“ 抓包 ”。

    这是爬虫所用到的最重要功能。它主要解决两个问题:

    1. 抓什么
    2. 怎么抓

    抓什么 ,是指对于那些通过异步请求获取到的数据,如何找到其来源。

    打开 Network 页面,开启记录,然后刷新页面,就可以看到发出的所有请求,包括数据、JS、CSS、图片、文档等等都会显示其中。从请求列表中可以寻找你的目标。

    一个个去找会很痛苦。分享几个小技巧:

    • 点击“ 搜索 ”功能,直接对内容进行查找。
    • 选中 Preseve log ,这样页面刷新和跳转之后,列表不会清空。
    • Filter 栏 可以按类型和关键字筛选请求。

    找到包含数据的请求之后,接下来就是用程序获取数据。这时就是第二个问题: 怎么抓

    并不是所有 URL 都能直接通过 GET 获取(相当于在浏览器里打开地址),通常还要考虑这几样东西:

    1. 请求方法 ,是 GET 还是 POST。
    2. 请求附带的参数数据 。GET 和 POST 传递参数的方法不一样。
    3. Headers 信息 。常用的包括 user-agent、host、referer、cookie 等。其中 cookie 是用来识别请求者身份的关键信息,对于需要登录的网站,这个值少不了。而另外几项,也经常会被网站用来识别请求的合法性。同样的请求,浏览器里可以,程序里不行,多半就是 Headers 信息不正确。你可以从 Chrome 上把这些信息照搬到程序里,以此绕过对方的限制。

    点击列表中的一个具体请求,上述信息都可以找到。

    找对 请求 ,设对 方法 ,传对 参数 以及 Headers 信息,大部分的网站上的信息都可以搞定了。

    Network 还有个功能:右键点击列表,选择“ Save as HAR with content ”,保存到文件。这个文件包含了列表中 所有请求的各项参数及返回值信息 ,以便你查找分析。(实际操作中,我发现经常有直接搜索无效的情况,只能保存到文件后搜索)

    除了 Elements 和 Network,开发者工具中还有一些功能,比如:

    Sources ,查看资源列表和调试 JS。

    Console ,显示页面的报错和输出,并且可以执行 JS 代码。很多网站会在这里放上招聘的彩蛋(自己多找些知名网站试试)。

    但这些功能和爬虫关系不大。如果你开发网站和优化网站速度,就需要和其他功能打交道。这里就不多说了。

    总结一下,其实你就记住这几点:

    1. 查看源代码 ”里能看到的数据,可以直接通过程序请求当前 URL 获取。
    2. Elements 里的 HTML 代码 不等于 请求返回值,只能作为辅助。
    3. Network 里用内容关键字搜索,或保存成 HAR 文件后搜索,找到包含数据的实际请求
    4. 查看请求的具体信息,包括 方法、headers、参数 ,复制到程序里使用。

    理解了这几步,大部分网上的数据都可以拿到,说“解决一半的问题”可不是标题党。

    当然咯,说起来轻松几点,想熟练掌握,还是有很多细节要考虑,需要不断练习。但带着这几点再去看各种爬虫案例,思路会更清晰。

    如果你想要针对爬虫更详细的讲解和指导,我们的“ 爬虫实战 ”课程了解一下,也有面向零基础的入门课程。

    课程详情公众号(Crossin的编程教室)里回复 码上行动

    ════
    其他文章及回答:

    如何自学Python | 新手引导 | 精选Python问答 | Python单词表 | 区块链 | 人工智能 | 双11 | 嘻哈 | 爬虫 | 排序算法 | 我用Python | 高考 | 世界杯 | 竞猜 | requests

    欢迎搜索及关注: Crossin的编程教室

    展开全文
  • 失败原因还各不相同,总之就是在命令行中输入pip install后会半天没有响应,好不容易开始下载,下了一半又报错,要不然是说格式不匹配,要不然说其他的库有问题导致失败 这些问题都是因为无论是
  • 在牛津短期学习的时候,同期的上交的汉语系的妹纸遇到这个问题。作为程序员,这时候当然是义不容辞地去开始解决问题(撩妹)啦。 问题就是: 在她输入完wifi的账户之后,再去输入密码的时候,输入到一半就突然...
  • AJAX tab显示不全及Android ADT不能下载的问题(已解决)关于使用ajax的tabcontainer中的tab文字只显示一半,总之就是显示不全的问题啦,我从一台电脑将写好的项目移到另一台,出现问题,最早感觉是这台电脑上...
  • svn 常用问题解决办法

    千次阅读 2016-07-11 15:26:45
    1. 隐藏文件.svn目录删除怎么办 Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理文件,不...2.文件名大小写问题,在下载代码时,下载到一半,系统提示不能找到……文件,
  • SVN常见问题及其解决方法 .

    千次阅读 2017-07-06 11:21:41
    1. 隐藏文件.svn目录删除怎么办 Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理...2.文件名大小写问题,在下载代码时,下载到一半,系统提示不能找到……文件, 提示Ca
  • 1. 隐藏文件.svn目录删除怎么办 Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理文件,不...2.文件名大小写问题,在下载代码时,下载到一半,系统提示不能找到……文件,
  • 出现这种情况,一般问题定位于mapper的xml文件,找到修改xml文件compare with 最近的时间段的代码做对比分析可以.
  • 最近几天在做spark数据同步过程中,中间通过kafka集群处理消息,每次同步到一半就会出现同步不 查看日志如下: 最开始看到这个问题很懵逼,完全找不到解决问题的切入口,期间也询问架构师-因为这个kafka和...
  • 问题解决:printf()函数无法打印

    千次阅读 2017-12-05 11:29:06
    今天写聊天室项目,调试出问题,查看代码无法找到问题,于是用printf()逐行打印。 问题定位很快,然而发现打印到一半无法显示。进过排查,这不是程序的问题,而是printf()函数无法打印。 这个问题...
  • 自学python是从看Michael的《python编程初学者指南》开始的,看到第1章,要安装第三方包的时候好不容易找到,但又发现自己的电脑怎么也没有pip,搜各种解决方法都不行,包括试各种没见过的命令、环境变量的...
  • 于是下载鲁大师,想补一下驱动,结果无线网卡驱动更到一半,我突然发现右下角网络断,点开发现只有飞行模式,网卡驱动更新也失败。于是开始漫长百度的过程。下图是问题的开始(找的网图): 先说解决...
  • 问题解决:printf()函数无法打印

    千次阅读 2016-08-13 00:16:31
    今天写聊天室项目,调试出问题,查看代码无法找到问题,于是用printf()逐行打印。 问题定位很快,然而发现打印到一半无法显示。进过排查,这不是程序的问题,而是printf()函数无法打印。 这个问题...
  • 打开cmd,进行安装pandas包: ...下载速度慢是因为这个受到外网的限速,上网搜索pip加速可以找到很多前辈给的资源,然后在cmd上install后加上-i 加速网址 pandas行啦~ pip install -i https://pypi.tuna.ts...
  • 首先说下这次升级swiper的原因,上次做完一直没上生产,近期其他组的同事发生产带上去,引发生产事故,运维反馈,全国一半的人登录系统时页面空白,于是开始一系列排查,最终找到是这个swiper的锅,客户用的...
  • 最近本人参与了一个小项目是做...不但一些通用的类库比普通WINFORM少了一半连调用的API函数与普通台式机上的WINDOWS系统也不一样。 在WINCE中引用DLL然后调用其API函数比较容易出现问题就是WINCE系统经常找不...
  • subversion(SVN)常见问题及其解决方法 .

    万次阅读 2013-04-19 13:33:32
    1. 隐藏文件.svn目录删除怎么办 Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理文件,不能...2.文件名大小写问题,在下载代码时,下载到一半,系统提示不能找到……文件,
  • subversion(SVN)常见问题及其解决方法

    千次阅读 2010-03-31 14:01:00
    1. 隐藏文件.svn目录删除怎么办Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理文件,不能...文件名大小写问题,在下载代码时,下载到一半,系统提示不能找到……文件,
  • 创建数据库没问题,创建表没问题,插入没问题,最多时间延长一些,但是一删表,跟打嗝打到一半卡喉咙一样,卡死到哪里,一动不动,坚持几分钟,像下图: 上网查资料,终于明白事情真相,MySQL的编码出现...
  • 问题如下: 正常用U盘做好系统启动盘,安装操作无误,注意将BIOS里面的secure ...可以用,在我把各种软件,ROS装好之后,系统告诉我空间又不足,然后我去看到底是什么文件导致我的硬盘崩,最后找到是/var/
  • 解决OpenOffic不能启动的问题

    千次阅读 2007-12-16 11:43:00
    OpenOffice 启动的时候,蓝条读到一半没有反应,现解决方法如下: 命令:sudo vim /etc/gtk-2.0/gtk.immodules 找到下面两行把它用“#”注释掉即可: #"/usr/lib/gtk-2.0/2.10.0/immodules/im-scim.so" #"scim...
  • CAD等画图软件的朋友可能都遇到过吧,软件安装一半弹出对话框提示Microsoft Visual C++ 2005 Redistributable出问题,这时你点啥都解决,然后按网上的各种说法去做折腾半天也不一定能找到有效的解决办法。...
  • 最近开始经常从 GitHud 上下载许多公开项目...只是慢就算,每次下载一半就显示 Failed,要 try again 无数次,大哥你逗我呢 今天终于忍无可忍,找到了一种有效解决办法: 1. 利用第三方DNS域名解析网站,查询响应...
  • 最近在公司接手了一个开发了一半的mpvue项目,在写边框样式的时候,照常给了粗细为1px。但是,当给UI小姐姐看效果的时候,她立马跟我说,你这个肯定不止1px。 我当下不认可了,我这个写死了1px的,怎么可能不是...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 208
精华内容 83
关键字:

找到问题就解决了一半