专栏首页python3Python简单爬虫

Python简单爬虫

爬取链家二手房源信息

import requests
import re
from bs4 import BeautifulSoup
import csv

url = ['https://cq.lianjia.com/ershoufang/']
for i in range(2,101):
    url.append('https://cq.lianjia.com/ershoufang/pg%s/'%(str(i)))

 # 模拟谷歌浏览器
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}

for u in url:
    r = requests.get(u,headers=headers)
    soup = BeautifulSoup(r.text,'lxml').find_all('li', class_='clear LOGCLICKDATA')
    for i in  soup:
        ns = i.select('div[class="positionInfo"]')[0].get_text() 
        region = ns.split('-')[1].replace(' ','').encode('gbk')
        rem = ns.split('-')[0].replace(' ','').encode('gbk')
        ns =  i.select('div[class="houseInfo"]')[0].get_text()
        xiaoqu_name = ns.split('|')[0].replace(' ','').encode('gbk')
        huxing = ns.split('|')[1].replace(' ','').encode('gbk')
        pingfang = ns.split('|')[2].replace(' ','').encode('gbk')
        chaoxiang = ns.split('|')[3].replace(' ','').encode('gbk')
        zhuangxiu =  ns.split('|')[4].replace(' ','').encode('gbk')
        danjia =  re.findall("\d+",i.select('div[class="unitPrice"]')[0].string)[0]
        zongjia = i.select('div[class="totalPrice"]')[0].get_text().encode('gbk')
        out=open("/data/data.csv",'a')
        csv_write=csv.writer(out)
        data = [region,xiaoqu_name,rem,huxing,pingfang,chaoxiang,zhuangxiu,danjia,zongjia]
        csv_write.writerow(data)
        out.close()

数据结果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Django之路由层

    以图书管理系统为例我们在数据库建立四张表:图书表、出版社表、作者表、作者信息,这里表与标的对应关系如下:

    用户6817597
  • Python多版本管理器pyenv

    有暗香盈袖
  • C++惯用法之消除垃圾收集器-资源获取即初始化方法(RAII)

    在C语言中,有三种类型的内存分配:静态、自动和动态。静态变量是嵌入在源文件中的常数,因为它们有已知的大小并且从不改变,所以它们并不那么有趣。自动分配可以被认为是...

    公众号guangcity
  • Deepin配置TF GPU环境

    使用conda安装GPU加速版本的TensorFlow时,将自动安装GPU支持所需的CUDA和CuDNN库。不需要再额外安装这些库了。而且与 pip 安装相比,...

    故事尾音
  • Python正则表达式匹配换行符

    默认时,Python正则中的.是不能匹配换行符的,如果碰到下面这种带有换行的js字符串该怎么办呢?

    SeanCheney
  • 【新梦想干货】RobotFramework环境搭建步骤

    RobotFramework作为公司能快速落地实现UI自动化测试的一款框架,同时也非常适合刚入门自动化测试的朋友们去快速学习自动化,笔者计划通过从搭建逐步到完成...

    新梦想IT职业教育
  • 队列、进程互斥锁、线程

    并行: 并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑;(资源够用,比如三个线程,四核的CPU )

    用户6817597
  • 异常处理

    在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,一个异常标识一种错误。

    用户6817597
  • exec()和元类

    exec执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码,

    用户6817597
  • 进程队列补充、socket实现服务器并发、线程完结

    解释型语言单个进程下多个线程不可以并行,但是向C语言等其他语言中在多核情况下是可以实现并行的,所有语言在单核下都是无法实现并行的,只能并发。

    用户6817597

扫码关注云+社区

领取腾讯云代金券