鱼C论坛

 找回密码
 立即注册
查看: 2325|回复: 10

爬虫一个网站的分析求助

[复制链接]
发表于 2019-9-1 20:59:52 | 显示全部楼层 |阅读模式

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

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

x
爬取url = "http://www.gmmsj.com/dy/89_zh.shtml"
1. 根据ajax特性,是网页部分刷新,这个网页随着不同页的点击,也是部分刷新,但是抓包没有xhr数据的抓取, 所以这个还是不是ajax技术实现的吗?
2.根据网页代码分析,点选不同页码时候,HTML中ID为"goods-list-ajax"的UL下面的li会变换不同的商品ID,但是没有任何数据包会产生,那么该如何爬取这些商品的ID呢?
li标签代码如下,红色部分是我要爬取的ID值
<li class="media" data-bind="attr:{'data-bookid':book_id}" data-bookid="00089000000015611965314840003753">
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-2 09:54:13 | 显示全部楼层
你是否是分析错了呢,我这里是正常可以弄的哈。

获取页面的接口url是  http://www.gmmsj.com/gmmweb/GoodsGW/goodsList?app_version=1.0.0.69230&device_id=JgU8GVLz60VDkDs1PtX85sIpAgTkVULl&system_deviceId=JgU8GVLz60VDkDs1PtX85sIpAgTkVULl&app_channel=chrome&src_code=7&order_type=modify_time&order_dir=d&goods_types=10&game_id=89&keyword=&page=2&limit=15&safe_type=

其中里面有一个page,第一页就是page=1,第二页就是page=2

然后就是一顿正常的抓取

选取了前3页测试了下,是可以提取到那个bookid的。
  1. 00089000000015673880274530005302
  2. 00089000000015663205897290006711
  3. 00089000000015669781778180008574
  4. 00089000000015673867459560005887
  5. 00089000800114755651355840004871
  6. 00089000000015563646342080008268
  7. 00089000000015563605039900002741
  8. 00089000000015563624788540001439
  9. 00089000000015668363153830000347
  10. 00089000000015673006597870006520
  11. 00089000000015664031633080005333
  12. 00089000000015672273027690000507
  13. 00089000000015658040154700007594
  14. 00089000000015668324891170008272
  15. 00089000000015661409658490002925
  16. 00089000000015672533609650001402
  17. 00089000000015673852520860003775
  18. 00089000000015624170519130006367
  19. 00089000000015672630118370004786
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-2 10:03:16 | 显示全部楼层
顺便把代码给你参考下

  1. import requests


  2. def get_html(url):
  3.     '''
  4.     :param url: list of good url
  5.     :return: page html
  6.     '''
  7.     headers = {
  8.         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
  9.         'X-Requested-With': 'XMLHttpRequest',
  10.     }
  11.     try:
  12.         r = requests.get(url, headers=headers)
  13.         r.encoding = r.apparent_encoding
  14.         return r.content
  15.     except Exception as e:
  16.         print(e)


  17. def parse_good_list(json_content):
  18.     '''
  19.     :param json_content:  Html to be parsed
  20.     :return: none
  21.     '''
  22.     # convert html to json
  23.     json_content = eval(json_content)
  24.     good_list = json_content['data']['goodsList']
  25.     for good in good_list:
  26.         print(good['book_id'])


  27. if __name__ == '__main__':
  28.     base_url = 'http://www.gmmsj.com/gmmweb/GoodsGW/goodsList?app_version=1.0.0.69230&device_id=JgU8GVLz60VDkDs1PtX85sIpAgTkVULl&' \
  29.                'system_deviceId=JgU8GVLz60VDkDs1PtX85sIpAgTkVULl&app_channel=chrome&src_code=7&' \
  30.                'order_type=modify_time&order_dir=d&goods_types=10&game_id=89&keyword=&page={}&limit=15&safe_type='
  31.     for i in range(1, 4):
  32.         tar_url = base_url.format(str(i))
  33.         json_content = get_html(tar_url)
  34.         parse_good_list(json_content)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-2 10:26:38 | 显示全部楼层
空青 发表于 2019-9-2 10:03
顺便把代码给你参考下

想问下 你是通过手机APP里面抓的包吗?还是网页版的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-2 10:27:55 | 显示全部楼层
sxfxtf 发表于 2019-9-2 10:26
想问下 你是通过手机APP里面抓的包吗?还是网页版的?

网页的,手机进这个网页好像要登陆,我没账号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-2 10:44:17 | 显示全部楼层
空青 发表于 2019-9-2 10:27
网页的,手机进这个网页好像要登陆,我没账号

奇怪了,我家里的谷歌抓不到包,换了公司的谷歌浏览器就能抓到包了.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-2 10:55:46 | 显示全部楼层
sxfxtf 发表于 2019-9-2 10:44
奇怪了,我家里的谷歌抓不到包,换了公司的谷歌浏览器就能抓到包了.

无法抓包的情况,我确实还没遇到过。最多见过前端页面禁止你调试的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-2 10:58:56 | 显示全部楼层
空青 发表于 2019-9-2 10:55
无法抓包的情况,我确实还没遇到过。最多见过前端页面禁止你调试的

我家里抓包时候,没有ajax的数据包抓出来的,只有一个document文件,所以我郁闷了,肯定有ajax数据请求的.
我怀疑是不是屏蔽插件的关系,我回家去瞧瞧.可否加个好友相互学习啊?
我对数据分析的很多东西都不太了解,还在学习中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-2 11:11:31 | 显示全部楼层
本帖最后由 空青 于 2019-9-2 11:12 编辑
sxfxtf 发表于 2019-9-2 10:58
我家里抓包时候,没有ajax的数据包抓出来的,只有一个document文件,所以我郁闷了,肯定有ajax数据请求的.
...


可以啊,不过我还很菜,主要是做数据爬虫,numpy,pandas数据分析工具用的还没那么溜

你可以直接加我微信号mylove4ni
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-2 11:28:35 | 显示全部楼层
空青 发表于 2019-9-2 11:11
可以啊,不过我还很菜,主要是做数据爬虫,numpy,pandas数据分析工具用的还没那么溜

你 ...

没事,一起学习,有个伴呗,我加你哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 00:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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