Python实现爬虫(爬取58同城所有房价)

程序发布日期2018-9-25(如果以后不能使用了,就需要更改解析方式.)

github博客传送门

csdn博客传送门

爬虫文件(Python实现)-爬取的数据文件(txt文件,空格分隔)-分析的文件(Python实现)-简单的分析结果图(png图4张) 资源链接地址:https://download.csdn.net/download/zhanghao3389/10686953

本章所需知识:

熟悉urllib.request模块(本次使用的是Python3,Python2请使用urllib和request两个模块)

urllib.request.urlopen() # 打开一个http请求

read() # 返回的信息中的.read()方法

熟悉lxml中的etree模块

etree.HTML() # 将html转换成能解析的格式

接下来上代码:

import urllib.request # 打开网页,读取网页内容用

from lxml import etree # 解析网页用

import time # 这里只使用了暂停程序的作用

url = 'https://cd.58.com/ershoufang/pn{}' # 需要解析的网页

# 定义了一个获取网页的方法 (http请求)

def getHtml(url):

response = urllib.request.urlopen(url) # 打开获取的链接

print(response.getcode()) # 返回一个网页打开的状态码

html = response.read() # 将获取的网页写入html

return html # 返回给调用者

# 定义了一个解析网页的方法 (解析器)

def parserHtml(html): # 将一个下载好的html传入解析器

html_text = etree.HTML(html) # 将html转换成xpath可以解析的格式

message_list = html_text.xpath('/html/body/div[5]/div[5]/div[1]/ul/li') # 解析到每个li元素的位置

for message in message_list: # 遍历所有的li元素

region = message.xpath('./div[2]/p[2]/span/a[2]/text()') # 解析地理位置

price = message.xpath('./div[3]/p[1]/b/text()') # 解析房子的价格

company = message.xpath('./div[3]/p[1]/text()') # 解析房子的价格单位

area = message.xpath('./div[2]/p[1]/span[2]/text()') # 解析房子的面积

unit_price = message.xpath('./div[3]/p[2]/text()') # 解析房子的单价

area = area[0].strip() # 将房子的面积后的空格去掉(房子的面积参数后面有个 html的空格 跟我们写入的格式不一样所以必须去掉才能写入到本地)

b = '{0} {1} {2} {3}' # 占位符(将每个数据中间添加一个空格隔开,便于后续导入excel)

a = b.format(region[0], price[0] + company[0], area, unit_price[0]) # 将爬取的数据格式化

print(a) # 打印出格式化后的数据

with open('message.txt', 'a') as f: # 打开一个文件存入格式化后的文件

f.write(str(a)) # 将数据写入文件

f.write('\n') # 写入一个换行符

# 主函数

for i in range(1, 70): # 遍历69次(看了一下网站 大概只有70页 为了不增加程序难度 手动翻69次)

print('第{}页'.format(i)) # 打印正在爬取第几页

url1 = url.format(i) # 将url格式化 传入页数

html = getHtml(url1) # 下载html (将格式化好的url1传入 getHtml 方法中)

parserHtml(html) # 解析html (将下载好的 html 传入 parserHtml 方法中解析)

time.sleep(1) # 暂停一秒 (有时候有检测会封 ip 然后将暂停时间调大一点 手动进入浏览器将验证码输入一遍就可以重新爬取了.

程序运行状态图:

python爬取58同城房子发布的手机号码_爬虫(成都58同城所有房价,Python实现)相关推荐

  1. python爬取ajax动态内容肯德基门店_爬虫爬取国内肯德基门店信息

    预期效果 爬取每个城市(300+城市)所有的肯德基门店信息,保存到excel中,效果如下: 代码实现 import requests import csv import json def getDat ...

  2. Python爬取南京地铁微博发布客流数据并进行分析

    Python爬取南京地铁微博发布客流数据并进行分析 之前在网上看到了分析北京地铁客流数据的开源项目,就想试着分析一下南京地铁的客流数据,可是找了很久没有找到可以获得南京地铁客流数据的接口,就去南京地铁 ...

  3. Python爬取网易云音乐热歌榜(爬虫)

    Python爬取网易云音乐热歌榜歌曲,并下载到本地 找到要下载歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更 ...

  4. python爬取京东商品数据要先登录_手把手教你用python 爬取京东评论

    本次python实战,主要目标是利用 Python爬取京东商品评论数,如上图所示:爬取"Python之父"推荐的小蓝书,这些信息主要包括用户名.书名.评论等信息. 爬取的网址url ...

  5. python爬取公众号文章发布时间

    使用xpath取出来的是空,爬取到本地的html,时间的标签如下,内容也是是空的 <em id="publish_time" class="rich_media_m ...

  6. python爬取淘宝商品做数据挖掘_Python 3爬虫 数据清洗与可视化实战 Python数据抓取技术 python3网络爬虫教程书籍 运用Python工具获取电商平台页面数据挖掘书籍...

    A8 书    名:Python 3爬虫 数据清洗与可视化实战 作 译 者:零一,韩要宾,黄园园 出版时间:2018-03 千 字 数:200 版    次:01-01 页    数:212 开   ...

  7. python爬虫案例-Python爬取租房数据实例,据说可以入门爬虫的小案例!

    一.什么叫爬虫 爬虫,又名"网络爬虫",就是能够自动访问互联网并将网站内容下载下来的程序.它也是搜索引擎的基础,像百度和GOOGLE都是凭借强大的网络爬虫,来检索海量的互联网信息的 ...

  8. python爬取贴吧所有标题的评论_用BS4爬取贴吧文章的作者信息时,如何兼顾爬取高亮的作者信息?...

    百度贴吧上的文章信息中,一般的作者信息代码,如下所示: 别让依靠成 而有部分作者信息是橙色的.如下所示: 冰缘瑞雪... # -*-coding:utf-8-*- """ ...

  9. python爬取微博热搜并存入表格_python爬虫进阶之爬取微博热搜存入Mysql

    在编程中,我们如果想要把数据转入数据库中,首先会选择 MySQL数据库.因为MySQL数据库体积小.速度快.总体拥有成本低.开放源代码,其有着广泛的应用,例如我们使用python爬虫微博热搜,就可以使 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记7 图像变换(四 )仿射变换
  2. 吊打Magic Leap,微软HoloLens 2不只为炫技
  3. 安卓通讯录系统mysql_Android手机通讯录项目开发--联系人数据库contacts2.db介绍
  4. Tomcat网页加载速度过慢的解决方法
  5. 使用ansible来调度cron作业
  6. 拉普拉斯变换公式表_复变函数之拉普拉斯变换小结
  7. DB2数据库对现有表格字段修改
  8. popwin.js 弹出小窗口,图片预览;
  9. [Silverlight]实战WCF RIA gzip压缩
  10. solr学习笔记-linux下配置solr
  11. 【每日算法Day 65】你能顺利救出地下城里的公主吗?
  12. [AngularJS面面观] 15. 依赖注入 --- 初识注入器(Injector)
  13. 【浮动导航栏的定位】JS监听动态页面元素距离底部距离,并修改定位样式
  14. 为什么正定矩阵等于转置_正定矩阵的定义性质-正定矩阵的判定方法-正定矩阵转置和本身...
  15. 庄懂着色器_L13_特效篇
  16. 程序设计——第七周作业(Floyd:胜负未知场数;dijkstra:猫猫快线最快线路;SPFA:城市收税)
  17. VS2019编译python解释器源码及学习方法
  18. Zoho 企业邮箱不可用修复方案
  19. 转行程序员日记--2020-08-12
  20. 树莓派(4B)之声音传感器

热门文章

  1. Reading Note(8) ——GNN for DSE Optimization
  2. linux下编写照相机应用程序,Linux下的图片编辑软件
  3. 电源适配器上各符号的意义都清楚吗?
  4. 苹果邮件怎么添加qq邮箱_分别在win10自带邮件和iOS上添加QQ邮箱
  5. vue实现一个星级打分效果_Vue实现星级评价效果实例详解
  6. 洛谷P6566 观星 题解
  7. oracle复制数据库文件,史上最简单的方法复制或迁移Oracle数据库
  8. 压感Android Webview,您不能错过的 Safari 10.0 新特性
  9. 智慧物流大势所趋,机器人、无人机、5G价值凸显
  10. 基于Vue的有机蔬菜销售网站java maven ssm