*之前偶然看了某个腾讯公开课的视频,写的爬取赶集网的租房信息,这几天突然想起来,于是自己分析了一下赶集网的信息,然后自己写了一遍,写完又用用Python3重写了一遍.之中也遇见了少许的坑.记一下.算是一个总结.*

python2 爬取赶集网租房信息与网站分析

  1. 分析目标网站url
  2. 寻找目标标签
  3. 获取,并写入csv文件
#-*- coding: utf-8 -*-
from bs4 import BeautifulSoup
from urlparse import urljoin
import requests
import csvURL = 'http://jn.ganji.com/fang1/o{page}p{price}/'
# 首先最基本的是 jn,ganji.com/fang1 其中jn为济南,也就是我的城市,默认登录后为此
# 而fang1 位租房信息 fang5 为二手房信息,zhaopin 为招聘模块等,我们这次只查找fang1
# 不过这个链接还可以更复杂
#比如http://jn.ganji.com/fang1/tianqiao/h1o1p1/ 或者
#  http://jn.ganji.com/fang1/tianqiao/b1000e1577/
#    其中h:房型,o页面,p价格区间,其中h,p后的数字与网站相应菜单的排列顺序相对应
# 而s与e则为对应的自己输入的价格区间
#                          h: house o:page p:price
# jn jinan  fang1 zufang tiaoqiao:tianqiaoqu b:begin 1000  e:end start 1755ADDR = 'http://bj.ganji.com/'
start_page =1
end_page = 5
price =1# 注意wb格式打开写入可能会导致csv文件每次写入前面多一个空格
# 对此你可以参考这篇文章:http://blog.csdn.net/pfm685757/article/details/47806469
with open('info.csv','wb') as f :csv_writer = csv.writer(f,delimiter=',')print 'starting'while start_page<end_page:start_page+=1# 通过分析标签可知我们要获取的标签信息必须要通过多个class确认才能保证唯一性# 之后是获取信息的具体设置print 'get{0}'.format(URL.format(page = start_page,price=price))response = requests.get(URL.format(page = start_page,price=price))html=BeautifulSoup(response.text,'html.parser')house_list = html.select('.f-list > .f-list-item > .f-list-item-wrap')#check house_listif not house_list:print 'No house_list'breakfor house in house_list:house_title = house.select('.title > a')[0].string.encode('utf-8')house_addr = house.select('.address > .area > a')[-1].string.encode('utf-8')house_price = house.select('.info > .price > .num')[0].string.encode('utf-8')house_url = urljoin(ADDR,house.select('.title > a ')[0]['href'])# 写入csv文件csv_writer.writerow([house_title,house_addr,house_price,house_url])print 'ending'

Python3 爬取赶集网i租房信息

要注意的点

  1. urlparse.urljoin 改为urllib.urlparse.urljoin
# python2
from urlparse import urljoin
# Python3
from urllib.parse  import urljoin
  1. Python3中csv对bytes和str两种类型进行了严格区分,open的写入格式应该进行改变wb->w
  2. 设置utf8编码格式
with open('info.csv','w',encoding='utf8') as f :csv_writer = csv.writer(f,delimiter=',')

完整代码如下

#-*- coding: utf-8 -*-
from bs4 import BeautifulSoup
from urllib.parse  import urljoin
import requests
import csvURL = 'http://jn.ganji.com/fang1/o{page}p{price}/'
#                                h: house o:page p:price
#  http://jn.ganji.com/fang1/tianqiao/b1000e1577/
# jn jinan  fang1 zufang tiaoqiao:tianqiaoqu b:begin 1000  e:end start 1755
# fang5 为二手房 zhipin 为 招聘 赶集网的url划分的都很简单,时间充足完全可以获取非常多的信息ADDR = 'http://bj.ganji.com/'
start_page =1
end_page = 5price =1'''
URL = 'http://jn.ganji.com/fang1/h{huxing}o{page}b{beginPrice}e{endPrice}/'
# 选择户型为h1-h5
# 输入价位为 begin or end
price='b1000e2000'# 户型为'''
# 默认为utf8打开,否则会以默认编码GBK写入
with open('info.csv','w',encoding='utf8') as f :csv_writer = csv.writer(f,delimiter=',')print('starting')while start_page<end_page:start_page+=1print('get{0}'.format(URL.format(page = start_page,price=price)))response = requests.get(URL.format(page = start_page,price=price))html=BeautifulSoup(response.text,'html.parser')house_list = html.select('.f-list > .f-list-item > .f-list-item-wrap')#check house_listif not house_list:print('No house_list')breakfor house in house_list:house_title = house.select('.title > a')[0].stringhouse_addr = house.select('.address > .area > a')[-1].stringhouse_price = house.select('.info > .price > .num')[0].stringhouse_url = urljoin(ADDR, house.select('.title > a ')[0]['href'])csv_writer.writerow([house_title,house_addr,house_price,house_url])print('ending')

最后的csv文件展示一下:

Python2 Python3 爬取赶集网租房信息,带源码分析相关推荐

  1. Python爬虫之九:用正则表达式爬取赶集网租房信息

    一.项目分析 1.查询主页和详情页面的关系 得出数据关系:每一个 class 属性为 f-list-item ershoufang-list 的 div 包含着整个需要爬取数据的信息,且查询 ersh ...

  2. 爬虫爬取赶集网租房信息

    一.爬虫–scrapy 1.搭建环境 代码如下(示例): import scrapy import numpy as np import pandas as pd import matplotlib. ...

  3. 利用python爬取贝壳网租房信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  4. python 爬取自如网租房信息(解决照片价格问题)

    一.背景 爬取自如网的租房信息时,本来以为是手到擒来的事,结果却被租房价格卡死了.有脾气的自如,价格居然搞成了照片,并且照片是乱序的0到9,每次根据像素位截取. 最气人的,还是一张照片只取一个数字,例 ...

  5. python爬取新浪微博内容_python新浪微博爬虫,爬取微博和用户信息 (含源码及示例)...

    [实例简介] 这是新浪微博爬虫,采用python+selenium实现. 免费资源,希望对你有所帮助,虽然是傻瓜式爬虫,但是至少能运行.同时rar中包括源码及爬取的示例. 参考我的文章: http:/ ...

  6. 【爬虫 初出茅庐】 爬取并下载想要图片 源码 分析 + 分享

    先上效果图. 如搜取并下载[鬼灭之刃]和[刀剑神域]相关图片 相关过程分析: (PS:因为刚学爬虫没几天,若大佬发现有什么问题欢迎指正) 这里爬取的网站是免费提供图片的51贴图.若光爬取单一或者连续网 ...

  7. Python爬虫项目--爬取某宝男装信息 附带源码

    本次爬取用到的知识点有: 1. selenium 2. pymysql 3  pyquery 正文 1. 分析目标网站 1. 打开某宝首页, 输入"男装"后点击"搜索&q ...

  8. 抓取赶集网租房信息 python3

    try:from bs4 import BeautifulSoupimport requests except Exception :print("请安装 bs4库 和 requests库 ...

  9. python 爬取贝壳网小区名称_利用python爬取贝壳网租房信息

    #@Author: Rainbowhhy#@Date : 19-6-25 下午6:35 importrequestsimporttimefrom lxml importetreeimportxlsxw ...

最新文章

  1. IPSEC非单播流量处理
  2. python 系统架构_Python之优化系统架构的方案
  3. cs224 -Lecture 1:Introduction and Word Vectors
  4. 【生信】统计学基础知识
  5. 基于FPGA的数字频率计设计
  6. 解决APKIDE(APK改之理)运行出现ApkIDE Exception:…报错的问题
  7. WebP是什么格式?如何免费批量转换JPEG
  8. 取向性完全不同 骐达英朗底盘对比解析
  9. 【论文笔记】Reaching agreement in the presence of faults (EIG)
  10. idea 使用自动注解时候红色警告的消除办法
  11. 半加器、全加器的FPGA实现
  12. 个人博客系统之框架搭建
  13. 图的遍历 DFS遍历(深学思维)
  14. 解决httpClient 调用返回“ ip:port fail to respond ” 问题
  15. 点成分享| 低温冷冻保存的技术研究(一)
  16. Swift 编程语言首席架构师 Chris Lattner 简介
  17. 小波分解处理非平稳时序数据(降噪)
  18. Vue-Vant—打包apk
  19. item在C语言中是什么意思中文,item的意思在线翻译,解释item中文英文含义,短语词组,音标读音,例句,词源,同义词【澳典网ODict.Net】...
  20. 【职场】技术人员的自我运营之道

热门文章

  1. os.path.join
  2. c#中的模态对话框和非模态对话框
  3. 稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 绑定数据到ListBox
  4. 理解css伪类和伪元素
  5. 在 Java 项目中打印错误日志的正确姿势,排查问题更方便,非常实用!
  6. Linux中查看日志文件的正确姿势,求你别tail走天下了!
  7. 高并发下的接口幂等性解决方案!
  8. Java 集合框架综述
  9. 线程池是怎样工作的?
  10. lombok @EqualsAndHashCode 注解的影响