全球主机交流论坛

标题: 听说论坛里很多python高手,那么问题来了。。。 [打印本页]

作者: hud    时间: 2018-4-20 13:06
标题: 听说论坛里很多python高手,那么问题来了。。。
本帖最后由 hud 于 2018-4-20 23:51 编辑

我要爬取https://daojia.jd.com/html/index.html#storeHome/storeId:11679831/orgCode:304477/formFenxiang:false/res_type:storeList这个页面的数据,就是名称和价格。因为是动态加载页面,所以用的splinter。但是不知道splinter怎么获取名称和价格。
--------
<dl><dt>迷你小黄瓜 450g-550g/份</dt> <dd class="aha"><strong class="line_pre">月售25件</strong> <var class="line_split"></var> <strong class="line_after">好评100%</strong></dd><dd></dd><dd class="a4e store-good-price-wrap-padding"><label><em>¥</em>8.8</label> </dd>  </dl>
-------
browser.find_by_tag也不行。

已经用selenium解决,谢谢各位大佬。
作者: eqblog    时间: 2018-4-20 13:06
本帖最后由 eqblog 于 2018-4-20 14:18 编辑
hud 发表于 2018-4-20 13:57
大佬,这个值怎么修改?
djrandom=15242011656893&functionId=productsearch%2Fsearch&body=%7B%22key%22 ...


刚刚说错了 见谅
正确方法:
import urllib.parse
urllib.parse.unquote(encoded_url)
然后就能解析出发送数据的格式 然后修改 然后用urllib.parse.quote(decoded_url)请求数据



作者: pony    时间: 2018-4-20 13:07
Python [1]  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
7月20日,IEEE发布2017年编程语言排行榜:Python高居首位 [2]  。
2018年3月,该语言作者在邮件列表上宣布 Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。
作者: hud    时间: 2018-4-20 13:12
这是大佬的ai回帖?
作者: 芒诗桃    时间: 2018-4-20 13:12

直接解析这个不行?
作者: 盟心    时间: 2018-4-20 13:13
selenium或者看js
作者: hud    时间: 2018-4-20 13:15
这个是动态加载的页面。直接解析的话,不完全,后面还有内容没显示。后面还有,必须下拉才行的。
作者: eqblog    时间: 2018-4-20 13:15
本帖最后由 eqblog 于 2018-4-20 13:24 编辑

我建议你直接解析js爬



后面还有就得你自己解析规则了。。


算了我还是说完整点吧,
_djrandom=15242011656893&functionId=productsearch%2Fsearch&body=%7B%22key%22%3A%22%22%2C%22catId%22%3A%22%22%2C%22storeId%22%3A%2211679831%22%2C%22sortType%22%3A1%2C%22page%22%3A1%2C%22pageSize%22%3A10%2C%22cartUuid%22%3A%22%22%2C%22promotLable%22%3A%223%22%2C%22timeTag%22%3A1524201165372%7D&appVersion=5.2.0&appName=paidaojia&platCode=H5&jdDevice=&signKey=bf2f52936dc8b91fc37230f6d5d40dc0&jda=122270672.534238949.1521674021.1521776846.1523854618.4

然后解码下你就可以看到  有个 body:{"key":"","catId":"","storeId":"11679831","sortType":1,"page":1,"pageSize":10,"cartUuid":"","promotLable":"3","timeTag":1524201165372}

修改这里的值就能获取每个分类 页数的数据
作者: evanvane    时间: 2018-4-20 13:26
现在还有人有耐心研究js啊,selenium或者splash之类一把梭啊。
作者: eqblog    时间: 2018-4-20 13:27
楼主 还要再完整点吗
作者: hud    时间: 2018-4-20 13:31
我按照你的实验看啊。
作者: 钱多多    时间: 2018-4-20 13:35
js加载的。你应该分析json
作者: fei2018    时间: 2018-4-20 13:35
eqblog 发表于 2018-4-20 13:27
楼主 还要再完整点吗

大佬威武
作者: hud    时间: 2018-4-20 13:57
eqblog 发表于 2018-4-20 13:15
我建议你直接解析js爬

大佬,这个值怎么修改?
djrandom=15242011656893&functionId=productsearch%2Fsearch&body=%7B%22key%22%3A%22%22%2C%22catId%22%3A%22%22%2C%22storeId%22%3A%2211679831%22%2C%22sortType%22%3A1%2C%22page%22%3A1%2C%22pageSize%22%3A10%2C%22cartUuid%22%3A%22%22%2C%22promotLable%22%3A%223%22%2C%22timeTag%22%3A1524201165372%7D&appVersion=5.2.0&appName=paidaojia&platCode=H5&jdDevice=&signKey=bf2f52936dc8b91fc37230f6d5d40dc0&jda=122270672.534238949.1521674021.1521776846.1523854618.4
作者: 狗仔小分队    时间: 2018-4-20 13:59
pony真是6
作者: eqblog    时间: 2018-4-20 14:02
本帖最后由 eqblog 于 2018-4-20 14:07 编辑
hud 发表于 2018-4-20 13:57
大佬,这个值怎么修改?
djrandom=15242011656893&functionId=productsearch%2Fsearch&body=%7B%22key%22 ...


我好像说错了。。
作者: 捕风    时间: 2018-4-20 14:09
围观各路大佬各显神通
作者: 捕风    时间: 2018-4-20 14:16
hud 发表于 2018-4-20 13:57
大佬,这个值怎么修改?
djrandom=15242011656893&functionId=productsearch%2Fsearch&body=%7B%22key%22 ...

djrandom是个随机值,后面的几个参数应该有几个就是固定那个值,其他应该具体每个分类对应具体的值

具体的我没细分析
作者: 大风起    时间: 2018-4-20 19:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: seobaikewang    时间: 2018-4-20 19:43
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4