文章目录

  • 1、使用python操作MySQL数据库
    • 1.1、在python中安装 MySQLdb
    • 1.2、连接数据库
    • 1.3、数据库基本操作
  • 2、爬取链家网站上租房信息

1、使用python操作MySQL数据库

1.1、在python中安装 MySQLdb

pip3 install pymysql

1.2、连接数据库

import pymysql
db = pymysql.connect(host='localhost',user='root',password='0315',db='test')

1.3、数据库基本操作

# 使用cursor()方法获取操作游标
cursor = db.cursor()   # 查询
sql = "select * from student;"
try:cursor.execute(sql)     # 执行sql语句results = cursor.fetchall()       # 获取查询的所有记录# 遍历结果for row in results:print(row)
except Exception as e:raise e
finally:db.close()  # 关闭连接 # 插入
cursor = db.cursor()
sql = "insert into student values('110','jacob','男','1996-03-15','95031');"
try:cursor.execute(sql)db.commit()
except Exception as e:db.rollback() # 错误回滚
finally:db.close()# 删除
cursor = db.cursor()
sql = "delete from student where id='110';"
try:cursor.execute(sql)db.commit()
except Exception as e:db.rollback() # 错误回滚
finally:db.close()# 更新
cursor = db.cursor()
sql = "update student set name='王芳芳' where name='王芳';"
try:cursor.execute(sql)db.commit()
except Exception as e:db.rollback() # 错误回滚
finally:db.close()

2、爬取链家网站上租房信息

import requests
from bs4 import BeautifulSoup
import pymysql
import timedef get_db():# 连接数据库db = pymysql.connect(host='localhost',user='root',password='0315',db='LianJia')return dbdef insert(db, house_info):# 插入获取的数据values = "'{}'," * 4 + "'{}'"sql_values = values.format(house_info['价格'],house_info['租赁方式'],house_info['房屋类型'],house_info['朝向楼层'],house_info['link'])cursor = db.cursor()sql = """insert into house (price,house_ways,house_type,house_towards,house_link)values({})""".format(sql_values)print(sql)cursor.execute(sql)db.commit()def get_page(url):# 获取url下页面的内容,返回soupresponce = requests.get(url)soup = BeautifulSoup(responce.text, 'lxml')return soupdef get_links(link_url):# 封装成函数,获取列表页面所有租房页面的链接,返回一个链接列表soup = get_page(link_url)links_div = soup.find_all('div', class_="content__list--item")links = [div.a.get('href') for div in links_div]return linksdef get_house_info(house_url):soup = get_page(house_url)price = soup.find('div', class_='content__aside--title').text[1:8]house_info = soup.find_all('span')house_ways = house_info[20].nextSibling  # 租赁方式house_type = house_info[21].next_sibling  # 房屋类型house_towards = house_info[22].nextSibling  # 朝向楼层info = {"价格": price,"租赁方式": house_ways,"房屋类型": house_type,"朝向楼层": house_towards,"link": house_url}return infodb = get_db()
links = get_links('https://bj.lianjia.com/zufang/')for house_url in links:house_info = get_house_info('https://bj.lianjia.com' + house_url)time.sleep(2)   # 每隔两秒寻找一个网页,防止被网站设置为恶意访问insert(db, house_info)

一个简单的爬虫例子(代码)相关推荐

  1. Python网络爬虫 - 一个简单的爬虫例子

    下面我们创建一个真正的爬虫例子 爬取我的博客园个人主页首页的推荐文章列表和地址 scrape_home_articles.py from urllib.request import urlopen f ...

  2. python网页爬虫例子_Python网络爬虫 - 一个简单的爬虫例子

    下面我们创建一个真正的爬虫例子 爬取我的博客园个人主页首页的推荐文章列表和地址 scrape_home_articles.py from urllib.request importurlopenfro ...

  3. python爬虫入门教程(二):开始一个简单的爬虫

    2019/10/28更新 使用Python3,而不再是Python2 转载请注明出处:https://blog.csdn.net/aaronjny/article/details/77945329 爬 ...

  4. mvc登录实例 mysql_spring mvc + mybatis + mysql 调整的一个简单的登录例子

    spring mvc + mybatis + mysql 整合的一个简单的登录例子 今天用spring跟mybatis整合写了一个简单的登录例子,第一次整合,给自己做个笔记,可能注释写的有点少,做的不 ...

  5. boost::log模块实现一个简单日志的例子

    boost::log模块实现一个简单日志的例子 实现功能 C++实现代码 实现功能 boost::log模块实现一个简单日志的例子 C++实现代码 #include <boost/log/tri ...

  6. 轻松创建nodejs服务器(1):一个简单nodejs服务器例子

    这篇文章主要介绍了一个简单nodejs服务器例子,本文实现了一个简单的hello world例子,并展示如何运行这个服务器,需要的朋友可以参考下 我们先来实现一个简单的例子,hello world. ...

  7. 一个简单的CORBA例子

    因为对CORBA分析的需要,这里写一个简单的CORBA例子.从JDK1.2开始,JDK中集成了ORB的实现,本例子使用了JDK1.7,对于JDK1.2+应该都没有问题.这个例子实现一个简单的加减乘除的 ...

  8. 使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 ...

  9. 网络爬虫笔记 :一个简单的爬虫框架

    学了两节课的 Python 爬虫,也算是入门了吧.敲了两天的案例代码之后,我突然发现,这些代码虽然功能不同,写法各异,但是终归是有章可循的,整体框架是一致的.所以我自己整理了一个简单的爬虫框架,适合初 ...

  10. $python爬虫系列(1)——一个简单的爬虫实例

    本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片. 1. 概述 本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片.下载图片的步骤如下: 获取网页html文本内容: 分析html ...

最新文章

  1. ListFileItem fileItems=sfu.parseRequest(request); fileitems 为,空
  2. C语言库函数大全及应用实例七
  3. 2021 年 CNCF 和开源速度的年终报告
  4. Silverlight HTML5 Flash - RIA技术之三足鼎立
  5. 分久必合的Lindorm传奇
  6. 建筑电气工程设计常用图形和文字符号_想要识图无忧?电气工程图图形符号全能图解,电工最爱识图助手...
  7. log4j每天生成一份html格式的日志
  8. 【蓝鸥Unity开发基础三】课时3 Terrain地形系统【未完】
  9. 单链表的插入删除以及逆转
  10. 利用Geotools来转换影像的坐标系[转]
  11. [原创]独立模式安装Hive
  12. 图像去雨RESCAN论文笔记
  13. 苹果手机怎么编辑word文档_怎么用苹果手机扫描文件转换成Word?这个方法我一定要告诉你...
  14. TikTok如何玩转语言教学类目?
  15. Microsoft Visio 2013在安装过程中出错的一种解决方案
  16. 《安富莱嵌入式周报》第246期:2021.12.27--2022.01.02
  17. 用python,重温小时候猜数字大小游戏
  18. java getmethods_java中Class.getMethods()和Class.getDeclaredMethods()方法的区别
  19. pycharm中新建项目出现的问题及过程(小白自学)
  20. 关于Java线程,看这一篇就绝对够用了

热门文章

  1. 家用电冰箱3C认证检测标准
  2. 快速批量执行redis命令
  3. html图片随圆点下标轮播,基于JavaScript实现轮播图代码
  4. JDK与JRE的区别
  5. deepin安装maven
  6. pgadmin4工具安装及使用
  7. java 二叉树详解 + 实现代码
  8. 沟通CTBS立白集团远程接入成功案例
  9. java工具类-Java对象转换成Map
  10. Symbian中的iScanCode和iCode