JiandanSpider icon indicating copy to clipboard operation
JiandanSpider copied to clipboard

又有问题了~

Open dishpzga opened this issue 7 years ago • 4 comments

c=re.search(r'.f_\w+(e,"(\w+)".',jsFile)

这段代码返回的c是none 原因是去请求jsFile 报404错误,在浏览器里jsFileUrl的地址是能正常访问的,求指教

dishpzga avatar Feb 02 '18 10:02 dishpzga

我在对这个爬虫改多页面的过程中发现这个js文件连续第二次获取会重定向到空页面,不知道和你遇到的是否是一个问题。另外我fork了这个爬虫,改了不少东西,并加了很多注释,有兴趣可以去看看,希望对你问题有帮助。

vsxd avatar Feb 02 '18 12:02 vsxd

<!--<script src="//cdn.jandan.net/static/min/742d37db99147f52c8c9905423ae48ca.71010020.js"></script> --><script src="//cdn.jandan.net/static/min/1d694f08895d377af4835a24f06090d0.01040002.js"></script> 我碰到一个问题是这样的,有些页面的源码是上面这样有两段js文件地址,我之前用的正则匹配到了第一个注释掉的地址,导致得到的常量是错误的。请求404的问题我也遇到过,不清楚是不是网站的反爬机制让ip被封了一段时间,我测试过用代理可以解决。我把代码重写了一遍,水平有限,各位一起完善。

vansl avatar Feb 03 '18 13:02 vansl

我猜可能也是因为频繁获取js的行为被反爬机制抓到了,我在把你的代码改成多页面的时候几乎每次运行都能遇到。后续页面的js用的其实都是一个,所以我的代码里只获取一次就能爬所有页面了。有的页面故意在正确js地址前加一个注释,re就匹配到注释上了,我那个pull request就改了那一个地方,初次使用github不知道用的对不对😁

vsxd avatar Feb 03 '18 13:02 vsxd

这个js文件地址和里面的常量隔一段时间会变所以我写成每次都重新获取了,不过一次爬虫时间比较短应该不会有问题。我刚刚才看见你的request。我把代码几乎全部重构一遍了。我也是新手一起完善😁

vansl avatar Feb 03 '18 14:02 vansl