java爬取闲鱼商品信息(三)

本文介绍了一种通过Fiddler捕获动态加载数据的方法,并详细解释了如何利用这些数据完成网页信息的完整抓取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一篇距离前两篇更新的时间有点久了,最近忙着刷题- -。

好了,上次说到没办法获取到动态加载的部分。

我用了phantomjs尝试了一下,多获取到的部分是复杂的js代码,代码量太大了,没找到我们需要的信息。

也可能是我使用的方式不对,要是有可以获得的方法欢迎大家在评论介绍一下,我去试试看。

好了,最后我还是弄到了动态加载的数据,当然不是用的phantomjs。

既然找不到数据,那为什么不问问神奇的fiddler呢。

我们打开fiddler,然后访问闲鱼闲置广场的3C数码。

再看看突然多出来的数据包。

看。我们发现了什么,没错,翻下去我们发现了很多在闲鱼倒卖小米MIX2S的老黄牛。。。。。

更重要的是,发现了需要动态加载出来的数据。。当然这是json格式的数据,被我们拦截下来了。。

然后看看这些个数据的网址。

https://s.2.taobao.com/list/waterfall/waterfall.htm?wp=3&_ksTS=1523262257881_271&callback=jsonp272&stype=1&catid=57544002&oon=10&st_trust=1&ist=1

然后用浏览器打开。

可以看到,是json格式的数据,那这个网址又和我们要的数据有什么关系呢?

https://s.2.taobao.com/list/waterfall/waterfall.htm?wp=3&_ksTS=1523262257881_271&callback=jsonp272&stype=1&catid=57544002&oon=10&st_trust=1&ist=1

再次仔细看一下,这两个参数是我们需要的,catid可以控制商品类型(结合第一篇),而ist则是第几页的动态数据。

接下来的事情就水到渠成了,下载这个页面,正则提取,然后和上一篇的处理方法封装在一起,就变成了一个获取完整的网页的方法。

接下篇,下篇刷阵题更新,不过剩下的都是简单的事情了。

欢迎大家探讨获取网页的其他方法,我这个效率好像还可以但是有些取巧,也没有普适性。

### 使用Python实现网页爬虫抓取iPhone相关信息 #### 准备工作 在开始编写爬虫之前,确保已经安装了必要的库。可以使用`pip install requests beautifulsoup4 lxml pandas openpyxl`命令来安装所需的依赖项。 #### 获取HTML内容 利用`requests`库发送HTTP请求并获取目标网页的HTML源码: ```python import requests url = "https://www.xianyu.com/search?keyword=iPhone" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', } response = requests.get(url, headers=headers) html_content = response.text ``` #### 解析HTML文档结构 采用`BeautifulSoup`配合`lxml`解析器提取所需数据: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'lxml') items = soup.find_all('div', class_='item') # 假设每条商品记录在一个<div>标签内 for item in items: title = item.select_one('.title').get_text(strip=True) # 商品标题 price = item.select_one('.price').get_text(strip=True) # 商品价格 location = item.select_one('.location').get_text(strip=True) # 发布地点 print(f'标题:{title}, 价格:{price}, 地点:{location}') ``` #### 处理分页加载更多数据 对于懒加载或无限滚动类型的页面,可能需要模拟浏览器行为触发JavaScript事件以加载全部列表项;而对于有明确翻页链接的情况,则可以直接遍历各页URL进行采集[^2]。 #### 应对反爬措施 当遇到IP封禁等问题时,考虑引入代理池轮换访问地址、降低请求频率等方式规避风险。如果涉及HTTPS加密通信且无法直接解密流量的话,在iOS设备上可通过配置自定义CA证书的方式绕过SSL验证限制[^3]。 #### 数据保存与分析 最后可选用CSV文件或者Excel表格等形式导出收集到的结果便于后续统计研究: ```python import pandas as pd dataframe = pd.DataFrame({ 'Title': titles, 'Price': prices, 'Location': locations }) dataframe.to_excel('./output.xlsx', index=False) ```
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值