[Python]学以致用爬取豆瓣小组租房信息

因为马上毕业面临着找房子的需求,在知乎上搜索了一下,发现豆瓣小组推荐的比较多。但是豆瓣小组得一个一个看不方便,想起了昨天学的爬虫,正好可以学以致用,开心之余发了条朋友圈,没想到有相同需求的朋友还不少,那我就把源码分享给大家,希望大家都能找到自己想要的好房子。

使用方法

搜索「豆瓣小组」,在豆瓣小组的搜索界面填写需要租房的地点,如图为例输入「成都租房」。


将页面拉倒最下方,点击「更多小组讨论」。

进入界面后,复制网址,这个网址替换掉程序里的url部分即可。
import time    # 时间函数库,包含休眠函数sleep()
import random
import requests ##导入requests
import csv
from bs4 import BeautifulSoup ##导入bs4中的BeautifulSoup
ip_list=[
   '223.241.119.23:18118', '183.30.204.91:9999', '112.115.57.20:3128'
   ]
user_agent_list = [
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
   ]
csv_file=open("d://Code_py//爬虫//爬代理//成都女生租房.CSV", 'w',newline='')#你想保存的位置
csv_writer = csv.writer(csv_file)
for i in range(50):#页码 爬取前50页信息
   #需要爬取的网址,用同样的形式替换,复制的网址start=后面的数字掉即可
   url = 'https://www.douban.com/group/chengduhezu/discussion?start='+str(i*25)
   UA = random.choice(user_agent_list)
   headers = {'User-Agent': UA}
   random_ip = random.choice(ip_list)
   proxy = {'http': random_ip}
   try:
       rec = requests.get(url, headers=headers)
       # rec = requests.get(url, headers=headers,proxies=proxy)#需要ip的话打开这个
       Soup = BeautifulSoup(rec.text, 'lxml')
       a_list = Soup.find_all('a',class_="",title=True)
       for a in range(len(a_list)):#
           title = a_list[a]['title']  # 取出a标签的href 属性
           href = a_list[a]['href']
           print(title,"第%d页第%d个"%(i+1,a+1))
           title_1=[]
           title_1.append(title+"第"+str(i+1)+"页第"+str(a+1)+"个")
           title_1.append(href)
           csv_writer.writerows([title_1])
           title_1=[]
           time.sleep(0.8)#休息0.8s 如果出现链接失败,可以把间隔时间加长
   except:
       print ('connect failed',random_ip)
       random_ip = random.choice(ip_list)
csv_file.close()

爬完之后你会得到一个csv文件,用Excel打开就是房子的标题和链接,你可以通过Excel的搜索功能来查找你想要的房子。

因为我的大部分同学都去成都了,我就替成都的同学爬好了。关注微信公众号,回复【租房】即可获取源码和爬好的成都的csv文件哦。



如果想你还想学习一点爬虫思路可以看看我的学习过程。

[Python]40行代码实现公式转换成图片,手把手教你从模仿到实现

[Python]公式转图片程序的反爬虫改进

[Python]公式转图片程序最后一个知识点多线程ip验证

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值