python关于二手房的课程论文_python爬取链家二手房信息

'''使用面向对象的方式,搭建项目框架'''import requests

import openpyxlfrombs4 import BeautifulSoup

import pymysqlclassLianJiaSpider():

mydb= pymysql.connect("localhost", "root", "511924", "summerperiod", charset='utf8')

mycursor=mydb.cursor()

#初始化

def __init__(self):

self.url='https://bj.lianjia.com/chengjiao/pg{0}/'#初始化请求的url

#将其伪装成浏览器,对付反爬的

self.headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0'}

#发送请求的方法

def send_request(self,url):

resp=requests.get(url,headers=self.headers)if resp.status_code==200:returnresp

#解析html获取有用的数据

def parse_content(self,resp):

html=resp.text

bs=BeautifulSoup(html,'html.parser')#第一个参数是要解析的内容,第二个参数是解析器

#查找自己想要的内容

ul=bs.find('ul',class_='listContent')

#在劜中获取所有的li

li_list=ul.find_all('li')

#遍历

lst=[]for item inli_list:

title=item.find('div',class_='title').text#标题

house_info=item.find('div',class_='houseInfo').text#房屋描述

deal_date=item.find('div',class_='dealData')#成交的日期

total_price=item.find('div',class_='totalPrice').text#总价

position_info=item.find('div',class_='positionInfo').text#楼层信息

unit_price=item.find('div',class_='unitPrice').text#单价

span_list= item.find_all('span') # 获取挂牌价和成交周期

agent_name= item.find('a', class_='agent_name').text # 销售

lst.append(title,house_info,deal_date,total_price,position_info,unit_price,span_list[0].text,span_list[1].text,agent_name)

#数据解析完毕,需要存储到数据库

self.write_mysal(lst)

def write_mysql(self,lst):

sql_cixian= "INSERT INTO food values (%s,%s,%s,%s,%s,%s,%s)"self.mycursor.executemany(sql_cixian, lst)

self.mydb.commit()

self.mydb.close()

#写入数据库

def write_mysal(self):

pass

#启动爬虫程序

def start(self):for i in range(1,2):

full_url=self.url.format(i)

resp=self.send_request(full_url)#发送请求ifresp:

self.parse_content(resp)#传入数据if __name__=='__main__':

#创建类的对象

lianjia=LianJiaSpider()

lianjia.start()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值