开始学 vue,尝试着用 requests.get() 去爬自己写的网页,然后什么都爬不到

2016-08-25 14:33:10 +08:00
 liangmishi
这种情况各位大大是如何解决的?
不用 selenium 等库,就用 requests 可有办法 ?
7809 次点击
所在节点    Python
22 条回复
ljcarsenal
2016-08-25 14:36:52 +08:00
你在页面上 ctrl+u 看到的是什么样的内容 爬虫爬到的就是什么样的内容
eromoe
2016-08-25 14:59:11 +08:00
纯 js 网站就是这样啊,我记得好像可以用 pyv8 运行 js ,但是文档很不完善,基本就是坑
liangmishi
2016-08-25 15:36:28 +08:00
@ljcarsenal 确实如此

@eromoe 那只能使用 selenium 之类的库了,但是效率很低
chairuosen
2016-08-25 15:58:08 +08:00
用 vue2.0 的 server-side renderer
foomorrow
2016-08-25 16:45:01 +08:00
phantomjs
eromoe
2016-08-25 16:57:17 +08:00
@foomorrow
纯 python 就是 selenium +webdriver(phantomjs), 要不还要学 phantomjs (虽然也不难,不过也有些坑)
isbase
2016-08-25 17:00:52 +08:00
推荐 nightmare
iamsgg
2016-08-25 17:14:25 +08:00
有的网站看来路,来路不对不返回内容。
liangmishi
2016-08-25 18:47:13 +08:00
@eromoe 学了一段时间 phantomjs ,感觉文档不多,学着累

@isbase 感谢~
@iamsgg 来路一般是看是否有 User-Agent 吧
holajamc
2016-08-25 19:44:30 +08:00
可以试试 httplib2 ,我觉得这玩意儿就是 Python 下的 HTTP 请求的王者, Selenium+PhantomJS 的话效率惨不忍睹,但是十分方便,多线程呗~
tumb8r
2016-08-25 19:56:20 +08:00
ajax??不返回 json ?
ericls
2016-08-25 22:38:45 +08:00
直接爬接口不是更方便 直接 parse json
pncltp
2016-08-26 01:00:45 +08:00
爬虫请用 scrapy 今天都说第二遍了。
WildCat
2016-08-26 05:04:56 +08:00
@liangmishi nightmare 完爆 phantomjs
csy123
2016-08-26 09:53:18 +08:00
@pncltp scrapy 能爬全 js 的网站?
pncltp
2016-08-26 10:18:57 +08:00
@csy123 这个 js 没有关系啊, http 无非就 get 和 post 。如果你说的是 json ,解析他的库实在太多。
killerv
2016-08-26 17:42:31 +08:00
这种调接口的更好爬吧,你要是解析页面当然是没有数据……
liangmishi
2016-08-26 20:22:47 +08:00
@holajamc 多线程的话也是内存可能会不够,所以这代价还是蛮大的

@pncltp 这和用不用 scrapy 没关系吧?

@tumb8r
@ericls 如果有接口当然是用接口方便,有时候没有
holajamc
2016-08-26 20:42:56 +08:00
不会太占内存,毕竟 Headless , 10 个线程绝对能够应付
ericls
2016-08-26 23:26:04 +08:00
@liangmishi 如果没有接口那数据哪里来的

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

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

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

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

© 2021 V2EX