• python爬取链家二手房信息


    程序的代码如下:

    完成的操作:爬取相关的信息之后保存到数据库之中

    '''使用面向对象的方式,搭建项目框架'''
    import requests
    import openpyxl
    from bs4 import BeautifulSoup
    import pymysql
    class LianJiaSpider():
        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:
                return resp
        #解析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 in li_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)#发送请求
                if resp:
                    self.parse_content(resp)#传入数据
    
    
    
    if __name__=='__main__':
        #创建类的对象
        lianjia=LianJiaSpider()
        lianjia.start()
  • 相关阅读:
    使用CXF开发Web Service服务
    IT成长中的龟兔赛跑
    IT成长中的龟兔赛跑
    什么是共识算法
    python字节序列
    数据分析必备的统计学(二):假设检验
    以太坊Casper 与 分片
    以太坊君士坦丁堡(Constantinople)升级公告
    以太坊基金会:前路,2018
    以太坊团队·2017年第四季度总结
  • 原文地址:https://www.cnblogs.com/dazhi151/p/13441832.html
Copyright © 2020-2023  润新知