大家好,又见面了,我是你们的朋友全栈君。
爬虫遇到的问题:
这两天做爬虫遇到些问题,我在这里总结一下,希望能够和大家分享,共同学习,共同进步。
今天在我爬某个网站的时候,返回的结果是415,不支持的媒体类型(Unsupported media type),当时遇到这个问题的时候,我有点蒙,什么是媒体,在这里先不管他什么是媒体,反正就是报错,但是能肯定的是415错误肯定是请求的问题。那么我就开始顺着我的爬虫经验挨个排除。 1、我的IP有没有被封? 2、这个请求是post/get? 3、请求头是否正确? 4、参数都是否正确? 但凡要记住做爬虫要细心去研究请求过程。 1、IP绝对没有封,因为我用的是公司的代理,同时在我的浏览器上面可以访问,排除IP被封。 2、弄清楚这个请求是post/get请求,我确定了这个请求“http://cq.gsxt.gov.cn/gsxt/api/ebaseinfo/queryForm/“ pripid ”/1?currentpage=1&pagesize=5&t=” System.currentTimeMillis();是get请求,排除post请求。 3、get请求和post请求在爬虫看来最大的差别就是,post请求参数都写在了请求地址的“?”后面,而get请求的参数要写在request请求类里面。问题到这我先把request.requestBody = null;这样get请求才不会受到之前做过post请求参数的干扰。把各种请求头信息都加上了(请求头不要写错了,千万不能带着问题区找问题),发现还是报Unsupported media type错误。这个时候我就开始怀疑我之前写的get请求是不是有多写请求信息的问题,才想到这个问题,这时候就看到我上一个get多写了几个请求信息,这里我要强调一下,由于不知道请求头信息那个是必要的,这时候做爬虫就要一个一个的去试,请求成功了之后一定要记得把之前写的多余的请求信息给去掉,不然会影响下面的请求(这个不是肯定,建议去掉多余的请求信息)。 4、参数是post特有的。
一个小小的问题困扰我了好久,工作效率就是这样慢慢积累起来的。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135344.html原文链接:https://javaforall.cn