本来我还在想, e 站直接把图片地址放在 html 里,连解析 JS 都省了,最多二十分钟搞定。现在想想,还是太年轻。
因为发生了一些很奇怪的事情。
墙内浏览器访问正常, Python 获取会报 connection reset by peer
。我猜多半是墙的锅, ss 不方便断点调试我就挂了个 VPN ,果然错误没有了。很奇怪为什么浏览器不会 reset
。
本来很快就写好了,挂 proxychains
测试的时候发现更诡异的事情,似乎 e 站会根据 IP 的不同返回不同的网页结构,比如这样 和这样的 ,不知道是什么原理。如果网页结构都会变的话,我也不知道怎么写 beautifulsoup
解析了……
咳,代码挂在 这里,能帮忙看一下那就最好了。
1
UnisandK 2016-05-08 15:29:07 +08:00 1
握爪,我之前也写过 e 绅士的爬虫
写完才知道它家是有 API 的 https://ehwiki.org/wiki/API |
2
RqPS6rhmP3Nyn3Tm OP |
3
RqPS6rhmP3Nyn3Tm OP @UnisandK 不对,这 API 其实没啥用,给出的图片地址是缩略图的
|
4
Bryan0Z 2016-05-08 15:56:36 +08:00 via Android
我猜你用的国内浏览器,云端加速功能关了就不能正常打开了
|
5
RqPS6rhmP3Nyn3Tm OP @Bryan0Z 我用的是 chrome ,你看这这标志性的开发者工具
|
6
vmebeh 2016-05-08 15:58:34 +08:00
环境变量`http_proxy` `https_proxy` 可以设置代理
|
7
RqPS6rhmP3Nyn3Tm OP @vmebeh 其实代理不是问题,挂个 proxychains 就好了,关键是浏览器不会 connection reset 而网页结构会变让我感到很奇怪
|
8
vmebeh 2016-05-08 16:07:18 +08:00
F12 看一下请求头的 Remote Address 就知道浏览器是不是走了代理
|
9
RqPS6rhmP3Nyn3Tm OP @vmebeh 然而并没有, strange
|
10
oott123 2016-05-08 16:25:59 +08:00 via Android
你描述的这些现象,可能是由于 UA ,也可能是 Accept 头,也可能是 Accept-Language 头不同。
|
11
RqPS6rhmP3Nyn3Tm OP @oott123 我在想的是,即便是 chrome ,在配置不变的情况下,也会返回不同的网页结构,我猜也许和 UA 没有关系。
这个问题我通过 iframe 的相对位置解决了,不过 connection reset 还是很诡异。 |
12
1423 2016-05-08 16:54:14 +08:00
这不是代理或者网络的问题,楼上的答案都偏题了
是 eheitai 前很久弄得 eheitai home 计划,为了分发图片的 大概就是 p2p 那种,你也可以跑个作为图床,就会发现有图片下载下来了 |
13
1423 2016-05-08 16:56:57 +08:00
Hentai@Home
|
14
qnnnnez 2016-05-08 16:58:35 +08:00 via Android
没遇到过这样的问题,怀疑是 UA ?
第一幅图少了 onclick ,这样一来 ajax 也没了,可能它觉得你禁用 js 了? |
15
RqPS6rhmP3Nyn3Tm OP |
16
qnnnnez 2016-05-08 17:32:25 +08:00
@BXIA 感觉不像。
Hentai@Home 只是提供了图片而已,不会提供网页。无论图片是不是 h@h 提供的, html 应该是不会改变的,只是图片的 URL 会变。 |
17
RqPS6rhmP3Nyn3Tm OP @qnnnnez 同一个 Chrome ,我想应该不会改变 UA ,这样就很诡异了
|
19
RqPS6rhmP3Nyn3Tm OP @qnnnnez 我用的是自己的 SS ,应该不会。
|
20
UnisandK 2016-05-08 19:14:27 +08:00 1
@BXIA 之前触发回复频繁的限制了╮(╯_╰)╭,抱歉隔这么久才回
官方文档写得比较烂,看看这个 https://github.com/tommy351/ehreader-android/wiki/E-Hentai-JSON-API API 虽然的确很不好用,但是借助它会比纯爬虫的方式实现好很多 |
21
hanqi7012 2016-05-08 19:16:39 +08:00 via Android
h@h 是不是在国内不能运行了?
|
22
Krime 2016-05-08 19:31:09 +08:00
|
23
qnnnnez 2016-05-08 19:33:52 +08:00 via Android
|
24
RqPS6rhmP3Nyn3Tm OP @UnisandK 感谢……明天研究一下,今天折腾这玩意实在是有点心累
|
25
RqPS6rhmP3Nyn3Tm OP @UnisandK 哇靠,这 API 也太丑了吧,我都看不下去了
|
26
zmj1316 2016-05-08 20:45:11 +08:00
因为 eh 家有个 hath,相当于把图片分布到大量的用户机器上 serve 了,有可能你被分配到的那个 hath 用户的 ip 被墙了就 reset 了?
|
27
RqPS6rhmP3Nyn3Tm OP @zmj1316 不,是主站 reset
|
28
so898 2016-05-09 02:03:25 +08:00
一整栋楼的绅士……虽然我也写过 ehentai 的抓取器……
那时候就发现 ehentai 这货返回的 html 会有不一样的,之前还以为是浏览器插件,后来发现要固定 user-agent 来抓 再后来尝试了浏览器插件来抓图…… |