爬虫遇到的问题:



今天在我爬某个网站的时候,返回的结果是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.currentTi

meMillis();是get请求,排除post请求。
3、get请求和post请求在爬虫看来最大的差别就是,post请求参数都写在了请求地址的“?”后面,而get请求的参数要写在request请求类里面。问题到这我先把request.requestBody = null;这样get请求才不会受到之前做过post请求参数的干扰。把各种请求头信息都加上了(请求头不要写错了,千万不能带着问题区找问题),发现还是报Unsupported media type错误。这个时候我就开始怀疑我之前写的get请求是不是有多写请求信息的问题,才想到这个问题,这时候就看到我上一个get多写了几个请求信息,这里我要强调一下,由于不知道请求头信息那个是必要的,这时候做爬虫就要一个一个的去试,请求成功了之后一定要记得把之前写的多余的请求信息给去掉,不然会影响下面的请求(这个不是肯定,建议去掉多余的请求信息)。
4、参数是post特有的。


一个小小的问题困扰我了好久,工作效率就是这样慢慢积累起来的。关注我,我会经常更新关于爬虫时遇到的问题的。