异步协程抓取链家数据+pandas写入csv

import asyncio

import aiohttp

import pandas

from bs4 import BeautifulSoup

from fake_useragent import UserAgent

class LJSpider(object):

def __init__(self):

self._ua = UserAgent()

self._headers = {"User-Agent": self._ua.random}

self._data_list = []

async def get(self,url):

"""

aiohttp异步协程 发出请求并返回response

:param url:

:return:

"""

async with aiohttp.ClientSession() as session:

try:

async with session.get(url,headers = self._headers,timeout = 3) as response:

if response.status == 200:

return await response.text()

except Exception as e:

print(e)

async def parse(self):

for i in range(0,6):

url = 'https://bj.lianjia.com/zufang/pg{}'.format(i)

resp = await self.get(url)

# 数据解析

self.parse_details(resp)

# print(resp)

#数据存储

data = pandas.DataFrame(self._data_list)

data.to_csv("链家网租房数据.csv", encoding='utf_8_sig')

def parse_details(self,resp):

bs = BeautifulSoup(resp, 'html.parser')

bs_list = bs.find_all('div',attrs={'class':'content__list--item'})

for i in range(0,len(bs_list)):

data=bs_list[i]

# 标题

title = data.find('a',attrs={'class':'twoline'}).text

# 租金

price = data.find('span',attrs={'class':'content__list--item-price'}).text

#描述信息

des_list = data.find('p',attrs={'class':'content__list--item--des'}).text.split('/')

part = self.delete_space(des_list[0])

area = self.delete_space(des_list[1])

direction = self.delete_space(des_list[2])

house_type = self.delete_space(des_list[3])

storey = self.delete_space(des_list[4])

# 房源类型

owner = data.find('i',attrs={'class':'content__item__tag--owner_reco'})

owner_reco = owner.text if owner else''

print('房源类型:',owner_reco)

#供暖类型

central = data.find('i',attrs={'class':'content__item__tag--central_heating'})

central_h = central.text if central else ''

# 标签

tag = data.find('p', attrs={'class': 'content__list--item--bottom oneline'})

tag_has = tag.text if tag else ''

# 信息来源

brand = data.find('span',attrs={'class':'brand'}).text

# 维护时间

time_onl = data.find('span',attrs={'class':'content__list--item--time oneline'}).text

one_data = {

"title": self.delete_space(title),

"price": self.delete_space(price),

'tag_has': self.delete_space(tag_has),

'part' :part,

'area': area,

'direction':direction,

"house_type" :house_type,

'storey': storey,

"owner_reco": self.delete_space(owner_reco),

"central_h": self.delete_space(central_h),

"brand": self.delete_space(brand),

"time_onl": self.delete_space(time_onl),

}

print('房源信息。。。。。:', one_data)

self._data_list.append(one_data) # 添加数据

def delete_space(self,str = ''):

"数据清洗"

str = str.replace('\n',' ').replace(' ','').lstrip().rstrip()

return str

def run(self):

loop = asyncio.get_event_loop()

tasks = [asyncio.ensure_future(self.parse())]

loop.run_until_complete(asyncio.wait(tasks))

if __name__ == '__main__':

l = LJSpider()

l.run()

链家网开源java_异步协程爬取链家租房信息相关推荐

  1. Python分别用单线程,多线程,异步协程爬取一部小说,最快仅需要5s

    文章目录 单线程爬取 多线程爬取 异步协程爬取 本文运用了三种方式爬取一整部小说,分别运用了单线程爬取,多线程爬取和异步协程爬取. 小说网址:` http://www.doupo321.com/dou ...

  2. Python爬虫——aiohttp异步协程爬取同程旅行酒店评论

    大家好!我是霖hero Python并发编程有三种方式:多线程(Threading).多进程(Process).协程(Coroutine),使用并发编程会大大提高程序的效率,今天我们将学习如何选择多线 ...

  3. 送书 | aiohttp异步协程爬取同程旅行酒店评论并作词云图

    大家好!我是啃书君! Python并发编程有三种方式:多线程(Threading).多进程(Process).协程(Coroutine),使用并发编程会大大提高程序的效率,今天我们将学习如何选择多线程 ...

  4. python异步协程爬取百度小说之西游记

    爬虫百度小说之西游记 参考文章链接:https://blog.csdn.net/weixin_45788900/article/details/119539952 一.百度小说之西游记网址:小说网址 ...

  5. python爬虫 asyncio aiohttp aiofiles 单线程多任务异步协程爬取图片

    python爬虫 asyncio aiohttp aiofiles 多任务异步协程爬取图片 main.py """=== coding: UTF8 ==="&q ...

  6. 利用协程爬取m3u8视频

    利用协程爬取m3u8视频 ​ 在进行了爬虫的相关学习之后,自己尝试爬取了一些视频,但动辄ts文件就几百个,单线程伤不起那时间,一个一个等实在太慢了,想利用多线程,查看相关资料,又说python是假的多 ...

  7. python从网址爬图片协程_Python爬虫多任务协程爬取虎牙MM图片

    查看: 4420|回复: 241 [作品展示] Python爬虫多任务协程爬取虎牙MM图片 电梯直达 发表于 2019-4-17 21:35:47 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结 ...

  8. python爬取链家新房数据_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

  9. python爬取链家房价消息_Python的scrapy之爬取链家网房价信息并保存到本地

    因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 ​ 爬虫结构: ​ 其中封装了一个数据库处理模 ...

最新文章

  1. 传统程序员如何学习机器智能?阿里公开11个经典实战案例
  2. java 常量区存放 new_java常量池与对象存储
  3. 通过 Docker Compose 组合 ASP NET Core 和 SQL Server
  4. 《走遍中国》珍藏版(十二)
  5. lean软件Android有吗,leanchat-android
  6. 使用R完成决策树分类
  7. 从win到linux的小问题集锦(不断更新中)
  8. chrome中如何下载文本文件(不是直接打开)
  9. CAD - 多段线、矩形、修订云线、样条曲线
  10. su 无法切换账户(密码正确)一直提示Authentication failure(认证失败)
  11. 景点门票销售系统系统java_《基于WEB的景点门票销售系统》.doc
  12. ERP系统更改颜色操作步骤
  13. Sql有条件的插入语句
  14. Python实现和弦查询器(钢琴)
  15. Easy EDA #学习笔记08# | 创建元件库(原理图库与PCB封装库)
  16. 计算机英语期末考,《计算机英语》期末考试试卷.doc
  17. Vue 3的设计过程(翻译自尤雨溪原文)
  18. 拉开你和同龄人差距的100个顶级认知
  19. Java 替换中文括号小括号,或者英文括号
  20. excel计算式自动计算_钢筋翻样搞不定?图文讲义+自动计算excel表格,高效更省心...

热门文章

  1. 战略地位与行动评价矩阵(转载)
  2. 三年重砸十亿,统信软件火力全开操作系统生态建设
  3. 小尺寸android 手机推荐,2021小屏手机不知道怎么买?三款小屏手机推荐
  4. 运放输入的共模输入阻抗,差模输入电阻
  5. 取得给定日期的上月同期
  6. 二手车车商收车必备app ,function myFunction()
  7. 友华PT926E:获取密码以及启用两个百兆口
  8. 垃圾软件显示已经在其他进程中打开了无法删除,该怎么办?
  9. Apache Kafka for Item Setup
  10. 西方经济学发展史与当代西方经济学