麻瓜编程python爬虫微专业_麻瓜编程·python实战·1-3作业:爬取租房信息
运行结果:
成功运行
我的代码:
from bs4 import BeautifulSoup
import requests
import time
# 建一个列表来收纳从聚合页面爬取到的所有信息页面
house_url = []
# urls是所有聚合页面的集合
urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(str(i)) for i in range(1,14)]
# 分析租房信息页面
def url_analysis(url):
time.sleep(2)
# 请求租房页面,并解析页面信息
web_data = requests.get(url)
soup = BeautifulSoup(web_data.text, 'lxml')
# 提取名称(titles)、地址(house_addrs)、价格(house_prices)、第一张房源图片(house_imgs)、
# 房东图片(owner_imgs)、房东性别(owner_sexes)、房东姓名(owner_names)
titles = soup.select('div.con_l > div.pho_info > h4 > em')
house_addrs = soup.select('div.con_l > div.pho_info > p > span')
house_prices = soup.select('div.day_l > span')
house_imgs = soup.select('img[id="curBigImage"]')
owner_imgs = soup.select('div.member_pic > a > img')
owner_sexes = soup.select('div.member_pic > div')
owner_names = soup.select('div.w_240 > h6 > a')
for title, add, price, img, pic, sex, name in \
zip(titles, house_addrs, house_prices, house_imgs, owner_imgs, owner_sexes, owner_names):
# 这里要注意考虑性别没有填写的情况
if sex.get('class')[0] == 'member_ico':
sex = '男'
elif sex.get('class')[0] == 'member_ico1':
sex = '女'
else:
sex = '保密'
# 把所有获取的信息汇总成一个词典
data = {
'title' : title.get_text(),
'add' : add.get_text().rstrip(),
'price' : '¥ '+price.get_text(),
'img' : img.get('src'),
'pic' : pic.get('src'),
'sex' : sex,
'name' : name.get_text()
}
print(data)
# 从聚合页面获取租房页面地址
def url_get(url):
time.sleep(3)
web_data = requests.get(url)
soup = BeautifulSoup(web_data.text, 'lxml')
house = soup.select('ul.pic_list.clearfix > li > a')
for urls in house:
urls = urls.get('href')
house_url.append(urls)
return house_url
#起点
for single_url in urls:
url_get(single_url)
print('总共爬取到',len(house_url),'条信息')
for each_url in house_url:
print('这是第',house_url.index(each_url) + 1,'条租房信息')
url_analysis(each_url)
我的感想:
用时接近3个小时(⊙o⊙)…
真的很怕运行到第100多条的时候报错(多谢群友提醒性别的if条件要分3个)
每个soup.select都是写一个打印一个(如果返回的是多个元素的打印 len() 比较实用),提取不出来就要改 CSS.selector
soup.select返回的都是列表,但其中的元素都是 bs4.tag
貌似以前看到过,用try、except来避免出错而中断运行
这边还有群友的一个关于性别的处理方式,用字典查询来替换if/else,另外也没有用for循环来迭代,而是直接切片(里面只有一个元素)
群友用的性别方法
一个悬而未决的问题:
为什么 sex.get() 返回的是一个列表 而 pic.get() 返回的是一个字符串呢??
悬而未决的问题
麻瓜编程python爬虫微专业_麻瓜编程·python实战·1-3作业:爬取租房信息相关推荐
- 麻瓜编程python爬虫微专业_麻瓜编程 - 主页
${content} 你输入的邮件地址曾经通过${type}激活了本站帐号,请使用${type}帐号直接登录. 课程习题 : 提示 请选择一个答案 提交 查看正确答案 下一题 ${option}: $ ...
- 利用python爬取租房信息_Python爬虫实战(1)-爬取“房天下”租房信息(超详细)
#前言html 先看爬到的信息:python 今天主要用到了两个库:Requests和BeautifulSoup.因此我先简单的说一下这两个库的用法,提到的都是此文须要用到的.编程 #Requests ...
- 正经网站爬虫实战,如何快速使用Selenium爬取租房信息
租房信息爬虫实战 摘要 1.技术选型 1.1 Selenium 1.2 MySql 2 程序思路 3 程序实现(python selenium) 3.1 引入需要的包 3.2 初始化驱动和数据库连接 ...
- Java 爬虫:是时候 Get 新技能了,使用 Java 爬取网页信息
如果你想利用自己的技术做出一点有意思的产品来,那么爬虫.算法和 AI 等技术可能是一个不错的突破口.今天,我们就来介绍下使用 Java 爬取页面信息的几种思路. 说起爬虫,自从 Python 兴起之后 ...
- python爬虫获取方法_小白学python爬虫:2.获得数据
在上一篇文章我我们已经完成了对网页的分析,包括了:在源码中数据的定位:获取方法(xpath).那么在获得数据之前我们考虑的则是如何获取源码. 接下来我们将学习如何从服务器获得源码. #写在前面&quo ...
- python爬虫实际应用_如何使用python爬虫论坛?
除了之前跟大家讲述过的视频.音乐以及时事新闻,关于爬虫可以做的事情有很多很多,像论坛也是其中之一,应用最火的内容,之前给大家罗列的爬虫实际内容有很多,但是还是希望将每个实际内容都跟大家说一下.让大家在 ...
- python爬虫安装教程_环境安装-Python 原生爬虫教程 | IT大叔
环境安装 了解了一些 Python 爬虫的基本知识之后,我们要正式开始 Python 爬虫的学习了,因为是要使用 Python 语言来进行爬虫开发,所以首先要在电脑上安装 Python ,那么这节课我 ...
- python爬虫网络中断_如何解决Python爬虫中的网络掉线问题?
在学校里的时候,除了上课,还有一大幸福的事情,就是用着学校的网线网络.当然玩的时候很开心,就是没事关键词时刻掉链子.时不时地网络掉线让人非常恼火,什么团战在梦游啊,看剧卡住不动了,相信能引起很多小伙伴 ...
- python爬虫未来发展趋势_什么是Python爬虫?有什么应用空间?-未来数据科技关于礼的诗句...
网友评论: 网络爬虫为一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面 ...
- python爬虫论坛代码_如何使用Python爬虫 抓取论坛关键字出现频率!
前言: 之前学习了用python爬虫的基本知识,现在计划用爬虫去做一些实际的数据统计功能.由于前段时间演员的诞生带火了几个年轻的实力派演员,想用爬虫程序搜索某论坛中对于某些演员的讨论热度,并按照日期统 ...
最新文章
- java开发经验分享_java开发经验分享(一)
- 表驱动设计的一点见解
- 外卖ERP管理系统(一)
- 利用小工具instsrv和srvany 创建windows服务
- DeepFocus,基于AI实现更逼真的VR图像
- 在ASP.NET Core 2.0中使用MemoryCache
- PHPStorm 配置远程服务器文件夹在本地windows镜像,实现代码自动同步(类似于Samba架构文件同步功能)
- mysql慢查询工具
- 第六节:框架搭建之EF的Fluent Api模式的使用流程
- java string类型详解_Java字符串类型详解
- iframe多层嵌套时获取元素总结
- MyCat分布式数据库集群架构工作笔记0016---高可用_单表存储千万级_海量存储_垂直分库划分原则
- [设计模式-行为型]解释器模式(Interpreter)
- API 接口设计中 Token 类型的分类与设计
- centos是什么linux操作系统,Linux 操作系统之CentOS的介绍
- 下载proteus-isis时出现的错误
- 【白话设计模式】23种设计模式一句话通俗讲解
- 人工智能简史�_人工智能简史
- 【区块链开发入门】(四) Truffle详解篇1
- 2010年中国十大最赚钱职业
热门文章
- 基于汇编与c语言的单片机原理及应用答案,基于汇编与C语言的单片机原理及应用...
- 27 构造连续的ICMP数据包
- ibm刀片服务器虚拟化,刀片服务器内置虚拟化 IBM升级服务器
- ASP.NET中Button控件的CommandName和CommandArgument属性用法
- 谷歌电子市场开发记录(2)-框架搭建
- python3.7.2安装pywifi_Python pywifi包_程序模块 - PyPI - Python中文网
- JAVA制作简单的查询身份证号信息小程序
- 使用 pyecharts 以及matplotlib分析猫眼哪吒影评
- 恶意代码防范技术原理-计算机病毒和特洛伊木马分析与防护
- (四)DIH导入结构化数据