利用代理池和多线程爬取房天下上万条数据

本文介绍了如何利用代理池和多线程爬取房天下的二手房数据,以规避频繁访问导致的验证码问题。首先了解网站并确定爬取二手房数据的目标,然后详细阐述了获取房源链接和抓取具体信息的流程,包括分类链接、统计页数、获取所有房屋链接及存储到数据库。最后,通过多线程实现高效爬取,但注意到线程间可能存在的重复操作问题,需要进一步优化。
摘要由CSDN通过智能技术生成

有了代理池之后就可以爬很多网站了,很多网站的反爬措施都是从ip方面下手,通过代理池可以近乎拥有无穷的ip,再也不怕封ip啦
下面我找上了房天下这个网站练一下手,通过测试,这个网站的反爬措施是一旦你访问过于频繁,他就会给你一个验证码,通过了验证码才能继续浏览。由于本人水平有限,可以说破解不了任何的验证码,所以希望通过更换ip来达到目的。

首先,先来了解一下这个网站,我准备爬取二手房的数据

这个是筛选界面,由于最多只显示100页,所以通过筛选缩小范围
在这里插入图片描述
这个是房屋信息总览的界面,从这里获取这些房屋的链接
在这里插入图片描述
这个是具体的内容,可以获取具体信息
在这里插入图片描述
这个是翻页,这里可以查看总页数
在这里插入图片描述
下边是代码部分,假设代理池已经建立好,代理池的建立我前边也有写。
程序分为两个模块,第一个是获取所有房屋的链接,第二个是请求这些链接,然后把具体信息爬取出来。

流程图如下

在这里插入图片描述

获取链接模块:

import requests
from lxml import etree
import time
import pymongo


class Get_url():
    def __init__(self):
        self.headers = {
            'Cookie':'city=qhd; Integrateactivity=notincludemc; global_cookie=qcsukbug0wpm5ct4714hd1k8o1ejpxt303i; lastscanpage=0; __utmz=147393320.1545394234.2.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; unique_cookie=U_ag68xkap1c907mueguax03vn32xjpzcujfr*1; __utma=147393320.2031085311.1545382911.1545470150.1545476577.6; __utmc=147393320; __utmt_t0=1; __utmt_t1=1; __utmt_t2=1; __utmb=147393320.3.10.1545476577',
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
        }
        self.client
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值