一个关于动态页面爬取的问题!

2019-07-10 15:22:31 +08:00
 snake8090

刚开始学习爬虫,上次有大佬在 V2 发了表情包的网站,今天想爬点表情包玩,发现加载页面是滚动加载的,看了下 network 加载的内容, Request URL 这里的内容复制放到新页面地址栏无法加载,找不到思路了 ,求大佬解答! 之前爬别的滚动加载的页面,可以通过 Request URL 里的地址在新的页面打开,这种第一次遇见。 而且这个地址的内容和原本的页面地址也找不到关联的地方。

2622 次点击
所在节点    Python
13 条回复
different
2019-07-10 15:26:41 +08:00
一方面看是不是 POST 请求(看你的截图就是 post )

另一方面看看请求头(服务端可能检测来源等等)

所以直接复制到新页面地址栏当然无法加载。
Karpov
2019-07-10 15:42:27 +08:00
可以考虑 puppeteer 这种实现
https://juejin.im/post/5ba1e99e6fb9a05d2b6db2eb
yamedie
2019-07-10 15:54:55 +08:00
@Karpov 这种小站感觉根本不需要动用 puppeteer..
node.js + super agent 扒列表, 随便找一个下载文件的包(比如 download), 就能完成这种任务
snake8090
2019-07-10 15:59:41 +08:00
@different
@Karpov
@yamedie
有什么方法是可以实现自动翻页的吗?
我观察了一下翻页的结果,翻页到最后之后,可以在整个页面提取到所有的表情包 URL,
根据这个思路是不是可以先请求分类标签的 url 地址,然后翻页到最后,再从返回的内容里提取所有的图片 url 地址成一个列表再遍历下载?
Imlry
2019-07-10 16:01:41 +08:00
随手帮你写了。。。
https://imgur.com/a/P57H3Qi
Eric5845191
2019-07-10 17:21:36 +08:00
这个接口只支持 post 请求,直接放在地址栏是 get 请求,所以报错
snake8090
2019-07-10 17:31:05 +08:00
Karpov
2019-07-10 19:44:21 +08:00
试了一下,这个请求还对 body 有要求:

POST /api/expressions/list?pageNum=1& pageSize=100000 HTTP/1.1
Host: www.bqber.com
Content-Type: application/json
User-Agent: PostmanRuntime/7.15.2
Accept: */*
Cache-Control: no-cache
Postman-Token: 5ab5da52-bf5d-4d78-937b-80f914c0f34d,e7915629-e679-4617-912d-729dc02dc82e
Host: www.bqber.com
Accept-Encoding: gzip, deflate
Content-Length: 13
Connection: keep-alive
cache-control: no-cache

{"name":null}

这样发过去就行了
zgl263885
2019-07-10 19:56:27 +08:00
自动翻页只是前端用户界面的一种实现方式,根本的还是得看做了哪些网络请求
trustbutverify
2019-07-10 19:57:10 +08:00
试试 pychrome
whoami9894
2019-07-10 19:57:34 +08:00
楼上都好有耐心。。。
ClericPy
2019-07-10 20:10:21 +08:00
对 python 来说,复制 curl bash,然后随便找个或者自己写个 curl Parser 发给 requests 就够了
ClericPy
2019-07-10 20:10:50 +08:00
写爬虫不管是靠它吃饭还是随便玩玩,http 那本书还是稍微读一下的好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/581730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX