python 学习 - 爬虫入门练习 爬取链家网二手房信息

import requests
from bs4 import BeautifulSoup
import sqlite3

conn = sqlite3.connect("test.db")
c = conn.cursor()

for num in range(1,101):
    url = "https://cs.lianjia.com/ershoufang/pg%s/"%num
    headers = {
        ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/64.0.3282.140 Safari/537.36‘,
    }

    req = requests.session()
    response = req.get(url, headers=headers, verify=False)

    info = response.text
    f1 = BeautifulSoup(info,‘lxml‘)
    f2 = f1.find(class_=‘sellListContent‘)
    f3 = f2.find_all(class_=‘clear LOGCLICKDATA‘)

    for i in f3:
        data_id = i.find(class_="noresultRecommend").get(‘data-housecode‘)
        href = i.find( class_ ="noresultRecommend img ").get(‘href‘)
        title = i.find(class_ ="title").get_text()
        adress = i.find(class_="houseInfo").get_text().split("|")
        jage = i.find(class_="totalPrice").get_text()

        # print(k,data_id, ‘|‘, title, ‘|‘, adress, ‘|‘, jage, ‘|‘, href)
        # print("---")

        dz = ‘‘
        fx = ‘‘
        dx = ‘‘
        cx = ‘‘
        zx = ‘‘
        dt = ‘‘
        if len(adress) == 6:
            dz = adress[0]
            fx = adress[1]
            dx = adress[2]
            cx = adress[3]
            zx = adress[4]
            dt = adress[5]
        elif len(adress) ==5:
            dz = adress[0]
            fx = adress[1]
            dx = adress[2]
            cx = adress[3]
            zx = adress[4]
            dt = ‘None‘
        # print(dz,fx,dx,cx,zx,dt)
        elif len(adress) < 5:
            print(dz, fx, dx, cx, zx, dt)

        info = {‘nid‘:int(data_id),
                ‘title‘:title,
                ‘dz‘:dz,
                ‘fx‘:fx,
                ‘dx‘:dx,
                ‘cx‘:cx,
                ‘zx‘:zx,
                ‘dt‘:dt,
                ‘jg‘:jage,
                ‘url‘:href}
        # print(info)

        x = info
        sql = "insert into rsf(nid,dz,fx,dx,cx,zx,dt,jg,title,url)values(%d,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘)" % (x[‘nid‘], x[‘dz‘], x[‘fx‘], x[‘dx‘], x[‘cx‘], x[‘zx‘], x[‘dt‘], x[‘jg‘], x[‘title‘], x[‘url‘])
        cursor = c.execute(sql)
        conn.commit()
        # print("OK")

conn.close()

    # import json
    # file_path = ‘info%s.txt‘%num
    # json_data = json.dumps(info_list).encode(‘utf8‘)
    # with open(file_path,‘wb‘) as f:
    #     f.write(json_data)

sqlite3 读取数据

import sqlite3
conn = sqlite3.connect("test.db")
c = conn.cursor()

#sqlit3 查询数据
cursor = c.execute("SELECT * from rsf")
k = 1
for row in cursor:
    num = float(row[7].split(‘万‘)[0])
    if 30.0 < num < 50.0:
        print(k,row[1],row[3],num,row[-2])
        k +=1

conn.close()

原文地址:https://www.cnblogs.com/Anec/p/9940989.html

时间: 2024-10-03 14:03:44

python 学习 - 爬虫入门练习 爬取链家网二手房信息的相关文章

Python的scrapy之爬取链家网房价信息并保存到本地

因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 ? 爬虫结构: ? 其中封装了一个数据库处理模块,还有一个user-agent池.. 先看mylianjia.py # -*- coding: utf-8 -*- import scrapy from ..items import LianjiaItem from scrapy.http import Request from parsel i

43.scrapy爬取链家网站二手房信息-1

首先分析:目的:采集链家网站二手房数据1.先分析一下二手房主界面信息,显示情况如下: url = https://gz.lianjia.com/ershoufang/pg1/显示总数据量为27589套,但是页面只给返回100页的数据,每页30条数据,也就是只给返回3000条数据. 2.再看一下筛选条件的情况: 100万以下(775):https://gz.lianjia.com/ershoufang/pg1p1/(p1是筛选条件参数,pg1是页面参数) 页面返回26页信息100万-120万(47

Python爬虫入门 | 5 爬取小猪短租租房信息

小猪短租是一个租房网站,上面有很多优质的民宿出租信息,下面我们以成都地区的租房信息为例,来尝试爬取这些数据. 小猪短租(成都)页面:http://cd.xiaozhu.com/1.爬取租房标题 按照惯例,先来爬下标题试试水,找到标题,复制xpath.多复制几个房屋的标题 xpath 进行对比: //[@id="page_list"]/ul/li[1]/div[2]/div/a/span//[@id="page_list"]/ul/li[2]/div[2]/div/a

爬取链家网租房图 使用ImagesPipeline保存图片

# 爬虫文件 # -*- coding: utf-8 -*- import scrapy import os from urllib import request from lianjia.items import LianjiaItem class LianjiaspiderSpider(scrapy.Spider): name = 'lianjiaSpider' # allowed_domains = ['www.xxx.com'] start_urls = ['https://bj.lia

Python爬虫项目--爬取链家热门城市新房

本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途) 环境 win8, python 3.7, pycharm 正文 1. 目标网站分析 通过分析, 找出相关url, 确定请求方式, 是否存在js加密等. 2. 新建scrapy项目 1. 在cmd命令行窗口中输入以下命令, 创建lianjia项目 scrapy startproject lianjia 2. 在cmd中进入lianjia文件中, 创建Spider文件 cd lianjia scrapy genspi

Python 爬虫入门之爬取妹子图

Python 爬虫入门之爬取妹子图 来源:李英杰  链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob/master/%E7%88%AC%E8%99%AB%E9%9B%86%E5%90%88/meizitu.py 爬虫成果 当你运行代码后,文件夹就会越来越多,如果爬完的话会有2

python爬虫:爬取链家深圳全部二手房的详细信息

1.问题描述: 爬取链家深圳全部二手房的详细信息,并将爬取的数据存储到CSV文件中 2.思路分析: (1)目标网址:https://sz.lianjia.com/ershoufang/ (2)代码结构: class LianjiaSpider(object): def __init__(self): def getMaxPage(self, url): # 获取maxPage def parsePage(self, url): # 解析每个page,获取每个huose的Link def pars

爬虫入门之爬取策略 XPath与bs4实现(五)

爬虫入门之爬取策略 XPath与bs4实现(五) 在爬虫系统中,待抓取URL队列是很重要的一部分.待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面.而决定这些URL排列顺序的方法,叫做抓取策略.下面重点介绍几种常见的抓取策略: 1 深度优先遍历策略: 深度优先遍历策略是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接.我们以下面的图为例:遍历的路径:A-F-G E-H-I B C D

Python爬取链家二手房数据——重庆地区

最近在学习数据分析的相关知识,打算找一份数据做训练,于是就打算用Python爬取链家在重庆地区的二手房数据. 链家的页面如下: 爬取代码如下: import requests, json, time from bs4 import BeautifulSoup import re, csv def parse_one_page(url): headers={ 'user-agent':'Mozilla/5.0' } r = requests.get(url, headers=headers) so