鱼C论坛

 找回密码
 立即注册
查看: 2381|回复: 8

求助大神:这个论坛列表页面貌似只要是 兵兵兵小零 发的贴都不能爬到,求助各位大神!

[复制链接]
发表于 2016-11-4 13:50:43 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 crxliy 于 2016-11-6 12:48 编辑

求助大神们
要爬的地址: http://hongdou.gxnews.com.cn/viewforum-21-1.html
这个论坛列表页面貌似只要是 兵兵兵小零 发的贴都不能爬到,其他没发现问题,求助,随意测试写的简单的爬虫代码如下,用python 3.5 写的

下面图中的发帖人为 兵兵兵小零的帖子都不能爬到,不懂正则表达式应该如何修改能爬到包含此人发的贴



未命名-2.jpg


                               
登录/注册后可看大图


测试爬虫代码如下:(另外可能这个地址设置了反爬虫,程序有时要反复重新运行几次才显示,这个地址貌似运行爬虫一两次就爬不出了,重新运行程序有时可以,有时又不行,我爬其他冷门的网没这种情况,是不是此论坛设有反爬机制?没经验也请大神告知?

  1. import urllib.request,re

  2. def url_open(url):
  3.     request = urllib.request.Request(url)
  4.     request.add_header('User-Agent','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36')
  5.     resp = urllib.request.urlopen(request)
  6.     html = resp.read()
  7.     return html

  8. def get_url(html):
  9.     key=r'<a title="主题:(.*?)&#13;'
  10.     urlre = re.compile(key)
  11.     urllist = re.findall(urlre,html)
  12.    
  13.     #return urllist
  14.     for i in urllist:
  15.         print(i)

  16. html = url_open("http://hongdou.gxnews.com.cn/viewforum-21-1.html").decode('gbk','ignore')

  17. get_url(html)
复制代码
未命名-3.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-4 14:22:13 | 显示全部楼层
我测试的是可以采集的
当你发现有问题的时候可以输出一下 html , 通过对比采集到的 html 和浏览器访问的 html 来 debug
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-4 16:05:23 | 显示全部楼层
本帖最后由 crxliy 于 2016-11-4 16:47 编辑
hldh214 发表于 2016-11-4 14:22
我测试的是可以采集的
当你发现有问题的时候可以输出一下 html , 通过对比采集到的 html 和浏览器访问的 h ...


怪了,程序是能运行,也能爬到所有除了此人发的帖子以外的所有帖子,我确实是增大眼睛一个一个对照过,只要一碰到此人发的贴就被跳过爬下一条了
您看下面的图是我同时运行程序和打开此网页浏览器看到的情况,每次都如此确实是抓不到此人所发帖子标题,我也没辙了!!

                               
登录/注册后可看大图

论坛说 今日我已无法上传更多的附件,图片也不给我上传了,不好意思,实在木有办法了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-4 16:57:48 | 显示全部楼层
crxliy 发表于 2016-11-4 16:05
怪了,程序是能运行,也能爬到所有除了此人发的帖子以外的所有帖子,我确实是增大眼睛一个一个对照过, ...

输出 html 看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-4 18:09:48 | 显示全部楼层

额~ 什么叫输出HTML啊?不好意思,新手不大懂可以教教吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-4 18:17:03 | 显示全部楼层
crxliy 发表于 2016-11-4 18:09
额~ 什么叫输出HTML啊?不好意思,新手不大懂可以教教吗?
  1. print(html)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-4 18:23:07 | 显示全部楼层

输出了,然后我该如何?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-4 18:36:36 | 显示全部楼层
crxliy 发表于 2016-11-4 18:23
输出了,然后我该如何?

你用浏览器打开这个页面, 查看源代码
然后对比一下和脚本的有什么区别
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-4 18:47:05 | 显示全部楼层
hldh214 发表于 2016-11-4 18:36
你用浏览器打开这个页面, 查看源代码
然后对比一下和脚本的有什么区别

我之前也是自己下网页下来,现在输出HTML,分析后觉得自己的正则表达 r'<a title="主题:(.*?)&#13;' 应该包括了可以获取那些漏掉帖子的,不知为何实际没能获取到, &#13;是换行没错吧,有点不懂错在哪了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-30 03:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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