注意:请不要爬取过多信息,仅供学习。

分析:

  1. 业务需求分析......(此例为住房信息...)
  2. 查找相关网页信息(以链家为例)
  3. 分析URL,查找我们需要的内容,建立连接
  4. 定位数据
  5. 存储数据

首先进入链家网首页,点击租房,F12检查网页,查找我们需要的信息。如图:

第一页url:https://bj.lianjia.com/zufang/

第二页url:https://bj.lianjia.com/zufang/pg2/

然后再定位我们需要的信息:如下图

下面就开始代码实现,我们的分析过程,获取数据,对数据进行定位。

主要代码:

  1. # url 页码拼接

  2. url = 'https://bj.lianjia.com/zufang/pg{}'.format(page)

  1. # 利用Xpath 对数据进行定位

  2. ...

  3. html_pipei = html_ele.xpath('//ul[@id="house-lst"]/li')

  4. for pipei_one in html_pipei:

  5. title = pipei_one.xpath('./div[2]/h2/a')[0].text

  6. region = pipei_one.xpath('./div[2]/div[1]/div[1]/a/span')[0].text

  7. ...

完整代码如下:

  1. import requests

  2. from lxml import etree

  3. import pymysql

  4. class Mysql(object):

  5. '''执行数据操作封装类'''

  6. def __init__(self):

  7. '''连接数据库、创建游标'''

  8. self.db = pymysql.connect(host="localhost", user="root", password="8888", database="test")

  9. self.cursor = self.db.cursor()

  10. def mysql_op(self, sql, data):

  11. '''MySQL语句'''

  12. self.cursor.execute(sql, data)

  13. self.db.commit()

  14. def __del__(self):

  15. '''关闭游标、关闭数据库'''

  16. self.cursor.close()

  17. self.db.close()

  18. # MySQL语句

  19. Insert = Mysql()

  20. # 要执行的sql 语句

  21. sql = '''INSERT INTO lianjia (title, region, zone, meters, location, price) VALUES(%s, %s, %s, %s, %s, %s)'''

  22. # 头部报文

  23. headers = {

  24. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'

  25. }

  26. def download_msg():

  27. for page in range(1, 2):

  28. url = 'https://bj.lianjia.com/zufang/pg{}'.format(page)

  29. responses = requests.get(url, headers=headers)

  30. html = responses.text

  31. # 利用Xpath

  32. html_ele = etree.HTML(html)

  33. html_pipei = html_ele.xpath('//ul[@id="house-lst"]/li')

  34. # print(html_pipei)

  35. for pipei_one in html_pipei:

  36. # ./li/div[2]/a

  37. title = pipei_one.xpath('./div[2]/h2/a')[0].text

  38. # print(title)

  39. region = pipei_one.xpath('./div[2]/div[1]/div[1]/a/span')[0].text

  40. # print(region)

  41. zone = pipei_one.xpath('./div[2]/div[1]/div[1]/span[1]/span')[0].text

  42. # print(zone)

  43. meters = pipei_one.xpath('./div[2]/div[1]/div[1]/span[2]')[0].text

  44. # print(meters)

  45. location = pipei_one.xpath('./div[2]/div[1]/div[1]/span[3]')[0].text

  46. # print(location)

  47. price = pipei_one.xpath('.//div[@class="price"]/span')[0].text

  48. # print(price)

  49. data = (title, region, zone, meters, location, price)

  50. Insert.mysql_op(sql, data)

  51. if __name__ == '__main__':

  52. download_msg()

爬虫练习 -- 链家相关推荐

  1. 爬虫实战-链家北京房租数据

    爬虫实战-链家北京房租数据 本篇是对 恋习Python 发布的原创文章<北京房租大涨?6个维度,数万条数据帮你揭穿>中涉及的代码部分的解读. < 在复现原文代码时,出现了一些报错,在 ...

  2. python爬虫requests源码链家_python的爬虫项目(链家买二手房)

    不知不觉,已经工作6年有余,恍恍惚惚,有机会满足房子需求. 在收集房子信息过程中,做些记录. 贝壳的功能很强大,但很难满足小区.距离.教育.面积等多个方面的匹配,使用起来成本仍然较高. 针对以上情况, ...

  3. 爬虫+可视化——链家杭州二手房房源信息

    ------------本篇文章旨在练习数据的爬取及可视化 简介 本项目分两个部分: 1.爬虫:共爬取到链家杭州二手房信息30806条 2.可视化:主要用pyecharts 一.获取数据 提取杭州各个 ...

  4. 手把手教你利用Python网络爬虫获取链家网的房产信息

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...

  5. python链家网爬虫_手把手教你利用Python网络爬虫获取链家网的房产信息

    点击上方" Python爬虫与数据挖掘 ",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来 ...

  6. 爬虫:链家房产租房信息深度爬取(运用redis和mysql)

    """ 1导入各种应用模块 import redis #用来进行redis数据库连接 import requests #requests 请求 from lxml imp ...

  7. 爬虫实战:链家租房数据爬取,实习僧网站数据爬取

    前面已经进行了爬虫基础部分的学习,于是自己也尝试爬了一些网站数据,用的策略都是比较简单,可能有些因素没有考虑到,但是也爬取到了一定的数据,下面介绍两个爬过的案例. 爬虫实战 链家网站爬取 实习僧网站爬 ...

  8. Python爬虫三:抓取链家已成交二手房信息(58W数据)

    环境:Windows7+python3.6+Pycharm2017 目标:抓取链家北京地区已成交二手房信息(无需登录),如下图,户型.朝向.成交时间价格等,保存到csv.最后一共抓取约58W数据,程序 ...

  9. php爬取房源,Python 爬虫 链家二手房(自行输入城市爬取)

    因同事想在沈阳买房,对比分析沈阳各区的房价,让我帮忙爬取一下链家网相关数据,然后打 算记下笔记 用于总结学到的东西&用到的东西. 一.爬虫需要会什么? 学习东西 首先你要知道它是干嘛的.爬虫 ...

  10. python爬虫requests源码链家_Python 爬虫 链家二手房(自行输入城市爬取)

    因同事想在沈阳买房,对比分析沈阳各区的房价,让我帮忙爬取一下链家网相关数据,然后打 算记下笔记 用于总结学到的东西&用到的东西. 一.爬虫需要会什么? 学习东西 首先你要知道它是干嘛的.爬虫 ...

最新文章

  1. Matlab实现图像边缘检测
  2. Valgrind使用【转】
  3. python怎样使用_Python如何合理使用assert(新手必读)
  4. G6 图可视化引擎——入门教程——元素及其配置
  5. STL_算法_区间的比較(equal、mismatch、 lexicographical_compare)
  6. TensorFlow书籍
  7. 离散数学知识点及错题集合 第七章
  8. 华为网络技术大赛模拟题目
  9. 大学计算机计算思维期末试题及答案,大学计算机计算思维导论期末考试
  10. linux怎么下载ftp文件夹,命令行 - 如何在Linux上通过FTP递归下载文件夹
  11. tensorflow ckpt模型转saved_model格式并进行模型预测
  12. 怎么利用企业微信营销 企业微信如何营销 企业微信如何维护好友 企业微信如何开通
  13. nginx防止CDN大量回源
  14. 用C语言打印平行四边形
  15. IE浏览器如何实现断点续传
  16. 微信公众号页面中监听手机“返回”,并回到公众号里
  17. 微信小程序 保存base64图片和普通图片
  18. 百家号自媒体的文章在哪个时间段发文效果比较好?
  19. js excel 在线插件 合并单元格 设置单元格样式 编辑工具
  20. Zotero 和它的朋友们: 一个文献阅读生态

热门文章

  1. MATLAB定义大气湍流模型退化函数,基于改进的Kolmogorov谱湍流模型的图像退化研究...
  2. odoo第二天,请假单,权限第一天
  3. 知星社:学会了什么?
  4. 计算机基础数据表示实验,2018大学计算机基础上机实验报告
  5. ODL:OpenDayLight子项目之MD-SAL
  6. 省协湖北中心 计算机科学与技术,国家知识产权局专利局专利审查协作湖北中心...
  7. 计算机网络学习笔记(一)应用层、传输层和网络层数据平面
  8. 又一家著名游戏公司在西雅图开分店了
  9. 直播app源代码,手机屏幕截取并保存到手机相册
  10. 《管理学》第四章 计划