鱼C论坛

 找回密码
 立即注册
查看: 3771|回复: 39

[已解决]python爬虫(爬取ooxx煎蛋妹子图)爬不了了

[复制链接]
发表于 2018-1-29 23:12:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼视频的爬取ooxx煎蛋妹子图的时候,网站还没有对图片进行反爬处理,可现在不一样了,图片的地址经过反爬处理后爬不到了,那怎么办啊,看网上有人说是模拟浏览器的办法,但也不知道具体怎么做啊,有哪位大神知道怎么弄吗?跪求解答!!!┭┮﹏┭┮

源码比对:

网页源码:
  1. <div class="text"><span class="righttext"><a href="//jandan.net/ooxx/page-104#comment-3691092">3691092</a></span><p><a href="//ws1.sinaimg.cn/large/82e98952ly1fnxv9fi71lj20zk18bk15.jpg" target="_blank" class="view_img_link">[查看原图]</a><br><img src="http://ws1.sinaimg.cn/mw600/82e98952ly1fnxv9fi71lj20zk18bk15.jpg" style="max-width: 480px; max-height: 750px;"></p>
  2.                         </div>
复制代码



爬取下来的源码:
  1. <div class="text"><span class="righttext"><a href="//jandan.net/ooxx/page-104#comment-3691073">3691073</a></span><p><img src="//img.jandan.net/img/blank.gif" onload="jandan_load_img(this)" />
复制代码


可以发现:<img src=' '>这里面的代码发生了改变了,然后我就不会改了~~~~(>_<)~~~~
最佳答案
2018-1-30 18:46:11
  1. import requests
  2. import re
  3. from  bs4 import BeautifulSoup
  4. from selenium import webdriver
  5. import os

  6. if not os.path.exists('OOXX'):
  7.     os.mkdir('OOXX')
  8. os.chdir('OOXX')
  9. url='http://jandan.net/ooxx/page-99'
  10. driver = webdriver.PhantomJS(executable_path="D:\python3\phantomjs-2.1.1-windows\\bin\phantomjs.exe")
  11. driver.get(url)
  12. soup=BeautifulSoup(driver.page_source,'html.parser')
  13. pics=soup.find_all('li',{'id':re.compile('comment-[0-9]+')})
  14. #print(soup)
  15. for pic in pics:
  16.    # print(pic)
  17.     print(pic.find("img",{'src':re.compile('.*\.jpg')})['src'])
  18.     n = pic.find("img",{'src':re.compile('.*\.jpg')})['src']
  19.     name = n[44:64]
  20.     with open(name,'wb') as f:
  21.         reponse = requests.get(n).content
  22.         f.write(reponse)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-29 23:12:39 | 显示全部楼层
图片地址已加密,换地地方吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-29 23:13:36 | 显示全部楼层
ba21 发表于 2018-1-29 23:12
图片地址已加密,换地地方吧

我知道加密了呀,但还是想爬,原因你懂得
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-29 23:16:07 | 显示全部楼层
还在纠结煎蛋啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-29 23:28:10 | 显示全部楼层
mms123 发表于 2018-1-29 23:16
还在纠结煎蛋啊

我第一次看内
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-30 09:21:29 | 显示全部楼层
置顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-30 10:07:41 | 显示全部楼层
  1. var f_gelFNgGBwT99NPBsI8P1xU7376YDNVx4 = function(m, r, d) {
  2.                 var e = "DECODE";
  3.                 var r = r ? r : "";
  4.                 var d = d ? d : 0;
  5.                 var q = 4;
  6.                 r = md5(r);
  7.                 var o = md5(r.substr(0, 16));
  8.                 var n = md5(r.substr(16, 16));
  9.                 if (q) {
  10.                         if (e == "DECODE") {
  11.                                 var l = m.substr(0, q)
  12.                         }
  13.                 } else {
  14.                         var l = ""
  15.                 }
  16.                 var c = o + md5(o + l);
  17.                 var k;
  18.                 if (e == "DECODE") {
  19.                         m = m.substr(q);
  20.                         k = base64_decode(m)
  21.                 }
  22.                 var h = new Array(256);
  23.                 for (var g = 0; g < 256; g++) {
  24.                         h[g] = g
  25.                 }
  26.                 var b = new Array();
  27.                 for (var g = 0; g < 256; g++) {
  28.                         b[g] = c.charCodeAt(g % c.length)
  29.                 }
  30.                 for (var f = g = 0; g < 256; g++) {
  31.                         f = (f + h[g] + b[g]) % 256;
  32.                         tmp = h[g];
  33.                         h[g] = h[f];
  34.                         h[f] = tmp
  35.                 }
  36.                 var t = "";
  37.                 k = k.split("");
  38.                 for (var p = f = g = 0; g < k.length; g++) {
  39.                         p = (p + 1) % 256;
  40.                         f = (f + h[p]) % 256;
  41.                         tmp = h[p];
  42.                         h[p] = h[f];
  43.                         h[f] = tmp;
  44.                         t += chr(ord(k[g]) ^ (h[(h[p] + h[f]) % 256]))
  45.                 }
  46.                 if (e == "DECODE") {
  47.                         if ((t.substr(0, 10) == 0 || t.substr(0, 10) - time() > 0) && t.substr(10, 16) == md5(t.substr(26) + n).substr(0, 16)) {
  48.                                 t = t.substr(26)
  49.                         } else {
  50.                                 t = ""
  51.                         }
  52.                 }
  53.                 return t
  54.         };

  55. function jandan_load_img(b) {
  56.         var d = $(b);
  57.         var f = d.next("span.img-hash");
  58.         var e = f.text();
  59.         f.remove();
  60.         var c = f_gelFNgGBwT99NPBsI8P1xU7376YDNVx4(e, "2cpnvo5O98HqyN4mFQlgmJ6mjmGgJH9L");
  61.         var a = $('<a href="' + c.replace(/(\/\/\w+\.sinaimg\.cn\/)(\w+)(\/.+\.(gif|jpg|jpeg))/, "$1large$3") + '" target="_blank" class="view_img_link">[查看原图]</a>');
  62.         d.before(a);
  63.         d.before("<br>");
  64.         d.removeAttr("onload");
  65.         d.attr("src", location.protocol + c.replace(/(\/\/\w+\.sinaimg\.cn\/)(\w+)(\/.+\.gif)/, "$1thumb180$3"));
  66.         if (/\.gif$/.test(c)) {
  67.                 d.attr("org_src", location.protocol + c);
  68.                 b.onload = function() {
  69.                         add_img_loading_mask(this, load_sina_gif)
  70.                 }
  71.         }
  72. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 11:52:34 | 显示全部楼层
Cy86183570 发表于 2018-1-29 23:13
我知道加密了呀,但还是想爬,原因你懂得

还是等自己有这个能力再说吧。要不出钱也成
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 13:16:09 | 显示全部楼层
ba21 发表于 2018-1-30 11:52
还是等自己有这个能力再说吧。要不出钱也成

换个方式就能爬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-30 16:57:50 | 显示全部楼层

这个用的是什么语言啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 16:59:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-30 17:55:28 | 显示全部楼层
Cy86183570 发表于 2018-1-30 16:57
这个用的是什么语言啊

这不是爬虫,我发的这段代码是煎蛋网加密的方式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 18:46:11 | 显示全部楼层    本楼为最佳答案   
  1. import requests
  2. import re
  3. from  bs4 import BeautifulSoup
  4. from selenium import webdriver
  5. import os

  6. if not os.path.exists('OOXX'):
  7.     os.mkdir('OOXX')
  8. os.chdir('OOXX')
  9. url='http://jandan.net/ooxx/page-99'
  10. driver = webdriver.PhantomJS(executable_path="D:\python3\phantomjs-2.1.1-windows\\bin\phantomjs.exe")
  11. driver.get(url)
  12. soup=BeautifulSoup(driver.page_source,'html.parser')
  13. pics=soup.find_all('li',{'id':re.compile('comment-[0-9]+')})
  14. #print(soup)
  15. for pic in pics:
  16.    # print(pic)
  17.     print(pic.find("img",{'src':re.compile('.*\.jpg')})['src'])
  18.     n = pic.find("img",{'src':re.compile('.*\.jpg')})['src']
  19.     name = n[44:64]
  20.     with open(name,'wb') as f:
  21.         reponse = requests.get(n).content
  22.         f.write(reponse)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 18:47:29 | 显示全部楼层
可能是被识别成爬虫了吧,我调用浏览器就可以直接爬到,没有加密
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 19:25:17 | 显示全部楼层
我的错误是.jpg搜索不到,据说是因为网页被js加密了,怎么破。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-30 19:53:02 | 显示全部楼层
404NOT 发表于 2018-1-30 19:25
我的错误是.jpg搜索不到,据说是因为网页被js加密了,怎么破。。。

你看我发的代码了吗,爬取下来的妹子图的网页地址已经变了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-30 19:54:04 | 显示全部楼层
mintaka 发表于 2018-1-30 18:47
可能是被识别成爬虫了吧,我调用浏览器就可以直接爬到,没有加密

phantomjs.exe这个程序是要下载的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 20:04:57 | 显示全部楼层
Cy86183570 发表于 2018-1-30 19:54
phantomjs.exe这个程序是要下载的吗

对,要下载,这是一个无界面的浏览器,其实你也可以用Firefox或者 chrome
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-30 20:14:56 | 显示全部楼层
mintaka 发表于 2018-1-30 20:04
对,要下载,这是一个无界面的浏览器,其实你也可以用Firefox或者 chrome

哦哦,谢谢大佬大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 20:42:26 | 显示全部楼层
不过Python将来好像不支持plantomjs了,最好使用Chrome或者Firefox。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表