链家网爬虫同步VS异步执行时间对比

异步执行时间

import time
import asyncio
import aiohttp
from lxml import etree

start_time = time.time()
async def get_url(url):
    session = aiohttp.ClientSession()
    response = await session.get(url)
    result = await response.text()

    terr = etree.HTML(result)

    ret = terr.xpath(‘//*[@id="content"]/div[1]/ul/li‘)
    for li in ret:
        title = li.xpath(‘.//div[@class="title"]//text()‘)
        print(title)

async def get_html():

    result = await get_url(url)
    print(result)
if __name__ == ‘__main__‘:
    url = "https://sz.lianjia.com/ershoufang/pg{}"
    tasks = [asyncio.ensure_future(get_url(url.format(rl))) for rl in range(1,30)]  # 创建task对象

    loop = asyncio.get_event_loop() # 创建事件循环对象
    loop.run_until_complete(asyncio.wait(tasks)) # 将所有task对象注册到事件循环对象中

    end_time = time.time()
    print("执行时间{}".format(end_time - start_time))  # 执行时间6.241659641265869

同步执行时间

import time
import requests
from lxml import etree

headers = {
‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36‘
}

start_time = time.time()
def get_url():
    url = "https://sz.lianjia.com/ershoufang/pg{}"

    for i in range(1,30):
        urli = url.format(i)

        result = requests.get(urli, headers=headers).text
        terr = etree.HTML(result)

        ret = terr.xpath(‘//*[@id="content"]/div[1]/ul/li‘)
        for li in ret:
            title = li.xpath(‘.//div[@class="title"]//text()‘)
            print(title)

get_url()
end_time = time.time()
print("执行时间{}".format(end_time - start_time))

# 执行时间82.57950687408447

原文地址:https://www.cnblogs.com/songzhixue/p/11706736.html

时间: 2024-10-08 07:28:56

链家网爬虫同步VS异步执行时间对比的相关文章

python链家网高并发异步爬虫and异步存入数据

python链家网二手房异步IO爬虫,使用asyncio.aiohttp和aiomysql 很多小伙伴初学python时都会学习到爬虫,刚入门时会使用requests.urllib这些同步的库进行单线程爬虫,速度是比较慢的,后学会用scrapy框架进行爬虫,速度很快,原因是scrapy是基于twisted多线程异步IO框架. 本例使用的asyncio也是一个异步IO框架,在python3.5以后加入了协程的关键字async,能够将协程和生成器区分开来,更加方便使用协程. 经过测试,平均1秒可以爬

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

使用python抓取并分析数据—链家网(requests+BeautifulSoup)(转)

本篇文章是使用python抓取数据的第一篇,使用requests+BeautifulSoup的方法对页面进行抓取和数据提取.通过使用requests库对链家网二手房列表页进行抓取,通过BeautifulSoup对页面进行解析,并从中获取房源价格,面积,户型和关注度的数据. 准备工作 首先是开始抓取前准备工作,导入需要使用的库文件,这里主要使用的是requests和BeautifulSoup两个.Time库负责设置每次抓取的休息时间.这里并非全部,后续还会在过程中导入新的库. 抓取列表页 开始抓取

JAVA架构师面试分享—链家网

本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间都是在做.NET相关的技术工作,并且自己所负责过的项目规模都是比较小,并且差异也较大.在高并发性,高伸缩性的互联网网站的架构方面没有太多的经验,只是在之前空闲时阅读李智慧老师的<大型网站技术架构>一书给了我不少的启发.面试过程比较简单,首先是笔试,架构师职位主要是一些知识的理解,也有一些数据库查询

分享系列--面试JAVA架构师--链家网

本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间都是在做.NET相关的技术工作,并且自己所负责过的项目规模都是比较小,并且差异也较大.在高并发性,高伸缩性的互联网网站的架构方面没有太多的经验,只是在之前空闲时阅读李智慧老师的<大型网站技术架构>一书给了我不少的启发.面试过程比较简单,首先是笔试,架构师职位主要是一些知识的理解,也有一些数据库查询

链家新房爬虫

# 链家新房爬虫 **今日目标** 爬取最新地区以及对应的房价 ```python import requests import re import csv class LianjiaSpider(object): def __init__(self): self.url='https://cq.lianjia.com/ershoufang/pg{}/' self.headers={'User-Agent': 'Mozilla/5.0'} #获取网址 def get_page(self,url)

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 (Windo

爬取链家网租房图 使用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

上海链家网二手房成交数据爬取

# 本文以浦东新区为例--其他区自行举一反三 import requests import pandas as pd import pprint import csv import pandas as pd from bs4 import BeautifulSoup url='https://sh.lianjia.com/chengjiao/{areo}/pg{page}/' data=[] #定义区列表 arealist=['beicai','biyun','caolu','chuansha'