分享"一只爬虫"

自接触爬虫以来,不管你有意识还是无意识都会不断的接触到这些概念:[多线程]、[多进程]、[协程]、[异步]...

本文分享一种对异步I/O支持操作的异步库asyncio的操作方法。

asyncio 是一种使用单线程、单个进程的方式切换

1. 主题:抓取开智读物书籍标题

2017年需要多多读书,立下的小目标是读25本非虚构类外国经典读物,时长大于100小时,每本书至少解决一个比较大的困惑。

这批书单比较有参考意义。

1483881852969.png

2. 环境及库

  • python3.5
  • asyncio
  • aiohttp
  • lxml
  • xpath

3.实践

1483881971121.png

只提取上文提到的书籍名称,其他类似,无非是不断的熟悉xpath或者其他解析方法的使用。

  • 网址
list_url = ["https://www.douban.com/doulist/41691053/?start={}&sort=seq&sub_type=4".format(number) for number in range(0, 125, 25)]

  • 获取网页源代码

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as html:
            response = await html.text(encoding="utf-8")
            return response

  • 解析网页源代码
async def parser(url):
    response = await fetch(url)
    print(response)
    dom = etree.HTML(response)
    selector = dom.xpath('//div[starts-with(@id,"item")]')
    for one in selector:
        print(one.xpath('div//div[@class="title"]/a/text()')[0].strip("\n").strip())

  • 事件循环
// 给一个函数添加了async关键字,就会把它变成一个异步函数
// 每个线程有一个事件循环,主线程调用asyncio.get_event_loop时会创建事件循环

// 把异步的任务丢给这个循环的run_until_complete方法,事件循环会安排协同程序的执行


loop = asyncio.get_event_loop()
tasks = [parser(url) for url in list_url]
loop.run_until_complete(asyncio.gather(*tasks))

  • 结果
失控
大自然如何工作
找工作
结构洞
创新的扩散
六度分隔
网络、群体与市场
链接
A New Kind of Science
怎样解题
统计数字会撒谎
啊哈,灵机一动
什么是数学
普林斯顿数学指南(第一卷)
大宇之形
黑客与画家
程序员的思维修炼
信息简史
软件随想录
程序员修炼之道
人月神话
"笨办法"学Python
追忆
唐宋词十七讲
马奇论管理
追寻记忆的痕迹
适应性思维
简捷启发式
笛卡尔的错误
Self Comes to Mind
社会认同过程
社会表征
看见成长的自己
成功,动机与目标
幸福的真意
创造力
失败的逻辑
为什么学生不喜欢上学?
象与骑象人
人格解码
出类拔萃的IQ
我们赖以生存的隐喻
态度改变与社会影响
持续的幸福
心灵导论
对权威的服从
亲密关系(第5版)
思维与决策(第四版)
复杂
隐秩序
风格的要素
文章作法
The Sense of Style
翻译乃大道
这就是纽约
埃科谈文学
一位年轻小说家的自白
修辞认识
《玩具屋》九讲
红玫瑰与白玫瑰
毛姆短篇小说精选集
青年王阳明:行动中的儒家思想(杜维明作品系列)
阳明学述要
王阳明大传:知行合一的心学智慧(全三册)
宗教与神话
如何理解中国人
中国人的心理
人情与面子
改变
行动科学
我生活的种种模式
致青年学者
Letters to a Young Scientist
反叛的科学家
论对话
哥德尔、艾舍尔、巴赫
经验的疆界
创新算法
莎士比亚、牛顿和贝多芬
基地
物种起源
自私的基因
The Extended Phenotype
地球上最伟大的表演
Darwin's Dangerous Idea: Evolution and the Meanings of Life
心灵种种
Intuition Pumps and Other Tools for Thinking
熊猫的拇指
生命的壮阔
魔鬼出没的世界
超越智商
机器人叛乱
这才是心理学
思考,快与慢
语言本能
心智探奇
人性中的善良天使
奖励的惩罚
无条件养育
进化心理学
穷查理宝典-查理.芒格的智慧箴言录-增订本
卓有成效的管理者
形式综合论
设计心理学
创新者的窘境(全新修订版)
技术与文明
奇特的一生
如何把事情做到最好
追时间的人

完:

新年愿景:

  • 学会js,scala
  • 读更多的书:技术 + 人文
  • 寻找机会展示:PPT
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容

  • 学习爬虫有一段时间了,期间接触了很多相关的库,不禁感慨Python就是强大,当你遇到任何问题的时候基本上都有前人造...
    HomerX阅读 7,811评论 0 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,103评论 25 707
  • 你有没有反思过,你的育儿方式是从哪儿学来的?它们到底好不好? 用现在时髦的话说,康德简直就是个资深宅男,因为他几乎...
    山中君阅读 222评论 0 2
  • 到了我这个年纪 已经不想取悦谁 已经不想写作 已经不图空虚的享受 不想装逼 不喜欢交新的朋友 不喜欢改变 不想大的...
    梁超文阅读 240评论 4 4
  • 亲子日记127篇。 时间过得好快,女儿已经是三年级的大学生了。许...
    荆佳琪妈妈阅读 116评论 0 0