• 全部
  • 互动交流
  • 文章分享

请问在爬取【贝壳租房】的时候,不同页面得到的结果相同如何解决?

stream_ 2021-02-08 03:52:53
在查询的过程中,我发现URL构成大致为:https://{0}.http://zu.ke.com/zufang/pg{1}

并且每一个房源有唯一房源编号,构成具体页面链接可进行访问。

所以我设置MySQL两列:1.自增ID做主键,2.房源编号唯一

但是在爬取过程中,通过改变pg的页数,得到的房源编号重复比例极大,一页30条,大致100页,最终结果只有三百多条(一开始以为代码没写对,后来我用单线程检查了循环数,返回是否有问题,用print发现不同页面很多返回的ID都是重复的)

后来我以为是推荐系统的问题,然后登录,写入cookie,得到的结果大致还是这样。

如何解决这种问题,感谢。
...全文
138 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
可以看下我写的博客使用scrapy爬取贝壳租房,我也遇到了好多问题,都解决了,顺利把数据爬取下来了https://blog.csdn.net/weixin_44454180/article/details/113455910
回复
stream_ 02-15
引用 6 楼 天不绝我 的回复:
我用浏览器打开的网站,每次刷新都变数据。 也就是说,爬虫和正常用户得到的结果是一样的。 那么这种行为还是反爬吗?? 颜色一样,长度一样,重量一样,叫声一样,那就可以判定是同一种东西。
谢谢您,我再研究一下。
回复
放风喽 02-09
数据是在https://bj.zu.ke.com/zufang/pg7/这个网址出来的,也就是说,在服务器端渲染的数据。 然后查看请求参数,srcid参数每次都会变,其他参数全部不变。 所以我判断,它根本没有那么多数据,每次都是随机抽取一组数据,在服务器端渲染完成,发送过来。 只要保证和上一页的数据不一样就行了。
回复
放风喽 02-09
我用浏览器打开的网站,每次刷新都变数据。 也就是说,爬虫和正常用户得到的结果是一样的。 那么这种行为还是反爬吗?? 颜色一样,长度一样,重量一样,叫声一样,那就可以判定是同一种东西。
回复
stream_ 02-09
引用 4 楼 天不绝我 的回复:
数据是在https://bj.zu.ke.com/zufang/pg7/这个网址出来的,也就是说,在服务器端渲染的数据。 然后查看请求参数,srcid参数每次都会变,其他参数全部不变。 所以我判断,它根本没有那么多数据,每次都是随机抽取一组数据,在服务器端渲染完成,发送过来。 只要保证和上一页的数据不一样就行了。
但是这个数量级差距太大了,显示:已为您找到 42773 套 北京租房,怎么可能只有三百多条数据。我觉得是某种反爬机制,我有随机sleep和多个useragent随机访问,但是还是没有办法避免这样的情况。
回复
stream_ 02-08
引用 1 楼 天不绝我 的回复:
爬取过程不要涉及复杂操作,所以获取页面的html之后,直接将html存储下来,然后获取下一页的html。节省时间,最大化利用网络。 另外开一个程序从html中过滤数据,这个时候就可以操作去重。所有复杂操作由这个程序进行。
你可以尝试一下贝壳的租房网站,https://bj.zu.ke.com/zufang。无论登录与否,刷新页面得到的结果都是不同的。和响应时间没太大关系
回复
放风喽 02-08
爬取过程不要涉及复杂操作,所以获取页面的html之后,直接将html存储下来,然后获取下一页的html。节省时间,最大化利用网络。 另外开一个程序从html中过滤数据,这个时候就可以操作去重。所有复杂操作由这个程序进行。
回复
相关推荐
发帖
脚本语言
创建于2007-08-27

3.7w+

社区成员

JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
申请成为版主
帖子事件
创建了帖子
2021-02-08 03:52
社区公告

CSDN 脚本语言社区接受专栏投稿(专栏会在顶部创建专属你的栏目),投稿需满足以下要求:

  • 脚本语言技术相关;
  • 文章持续更新,保持活跃;
  • 内容清晰明了,干货为主;
  • 文章排版有序,有条有理。

本社区开通招聘专栏,发布招聘信息请联系版主,发布者需要保证招聘信息真实有效,CSDN 平台和版主不对招聘内容负责!

联系方式:私聊版主、发送邮件、QQ联系等均可: