如何使用python从网站上抓取<div class =“quotetext”>?

时间:2016-10-24 02:56:53

标签: python web-scraping quotes chatbot

我正试图从这个网站导入爱因斯坦的引用:

https://www.goodreads.com/author/quotes/9810.Albert_Einstein

我只想要引用文字。甚至不是他的名字,或其他任何东西。只是文字,帮助建立一个markhov连锁聊天机器人。

这是我的代码:

from lxml import html
import requests

page = requests.get('https://www.goodreads.com/author/quotes/9810.Albert_Einstein')
tree = html.fromstring(page.content)

quotes = tree.xpath('//div[@class="quoteText"]/text()')


print quotes

这是输出:

  

[u&#34; \ n \ u201c两件事是无限的:宇宙和人类   愚蠢;而且我对宇宙不确定。\ u201d \ n&#34;,你&#39;   \ u&#39;,&#39; \ n&#39;,u&#39; \ n \ u201c只有两种生活方式   你的生命。一个好像什么都不是奇迹。另一个是   虽然一切都是奇迹。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,   你是一个艺术家,可以自由地画在我的身上   想像力。想象力比知识更重要。知识   是有限的。想象力围绕着这个世界。\ u201d \ n&#39;,你&#39; \ u2015 \ n   &#39;,&#39; \ n&#39;,u&#34; \ n \ u201如果您无法向六岁的孩子解释,   你自己不明白。\ u201d \ n&#34;,你&#39; \ u&#39;,&#39; \ n&#39;,   如果您希望您的孩子聪明,请阅读它们   童话故事。如果您希望它们更智能,请阅读更多内容   童话故事。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,u&#39; \ n
  \ u201cLogic会让你从A到Z;想象力会得到你   无处不在。\ u201d \ n&#39;,你&#39; \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201cLife   就像骑自行车一样。为了保持平衡,你必须保持   移动。\ u201d \ n&#39;,你&#39; \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201cAnyone   从来没有犯错的人从未尝试过任何新的东西。\ u201d \ n&#39;   ü&#39; \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201cI与所有人说话   同样,无论他是垃圾人还是总统   大学。\ u201d \ n&#39;,你&#39; \ u2015 \ n&#39;,&#39; \ n&#39;,u&#34; \ n \ u201cWhen   你正在追求一个好女孩一小时似乎是一秒钟。当你坐下   在一个红热的煤渣上,第二个似乎是一个小时。那&#39; S   相对论。\ u201d \ n&#34;,你&#39; \ u&#39;,&#39; \ n&#39;,u&#39; \ n \ u201cNever   记住你可以查找的东西。\ u201d \ n&#39;,你&#39; \ u2015 \ n
  &#39;,&#39; \ n&#39;,u&#39; \ n \ u201c聪明的人解决了一个问题。明智的   人避免它。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,u&#39; \ n
  没有宗教的科学是蹩脚的,没有科学的宗教就是   盲人。\ u201d \ n&#39;,你&#39; \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201c现实是   只是一种幻觉,虽然是一种非常持久的幻觉。\ u201d \ n&#39;,你&#39;   \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201我们知道我们是什么   做,它不会被称为研究,是吗?\ u201d \ n&#39;,你&#39;   \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201c我没有特殊才能。我是   只有充满激情的好奇。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,u&#39; \ n
  \ u201如果杂乱的桌子是一个混乱的头脑的标志,是什么,   那么,一张空桌子是一个标志吗?\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,   你重要的是不要停止提问。   好奇心有其存在的理由。一个人忍不住陷入其中   当他思考永恒,生命和神秘的奥秘时,敬畏   现实的奇妙结构。只要一个人尝试就足够了   每天都能理解这个谜团。&#39;,你&#39; \ xe2 \ x80 \ x94&#34;老   男人对青年的建议:“永远不会失去神圣的好奇心。”&#39;&#34; &#39;,你&#39; (5月2日   1955年)p。 64 \ u201d \ n&#39;,你&#39; \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201c尝试   不要成为一个成功的人。而是成为一个有价值的人。\ u201d \ n   &#39;,你&#39; \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201c傻瓜可以知道。该   要明白这一点。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,u&#39; \ n
  \ u201cA人类是我们宇宙所称的整体的一部分,a   部分时间和空间有限。他体验了自己,他的思想   感觉就像与其他东西分开的东西,一种光学   妄想他的意识。这种妄想是一种监狱   我们,限制我们个人的欲望和对少数人的感情   离我们最近的人。我们的任务必须是摆脱这种局面   监狱通过扩大我们的同情圈来拥抱所有生活   生物和整个自然的美丽。\ u201d \ n&#39;,你&#39;   \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201c一旦你能接受宇宙   因为物质无所不在,穿着条纹   格子花呢很容易。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,u&#39; \ n
  \ u201如果我不是物理学家,我可能会成为一名音乐家。一世   经常在音乐中思考。我生活在音乐中的白日梦。我看到了我的生活   音乐条款。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,u&#39; \ n
  \ u201c我们创造的世界是我们思考的过程。它   如果不改变我们的想法就无法改变。\ u201d \ n&#39;,你&#39;   \ u2015 \ n&#39;,&#39; \ n&#39;,u&#39; \ n \ u201c我不知道用什么武器   第三次世界大战将进行,但第四次世界大战将与之抗争   棍棒和石头。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,u&#39; \ n
  你永远不会失败,直到你不再尝试。\ u201d \ n&#39;,你&#39; \ u2015 \ n
  &#39;,&#39; \ n&#39;,你&#39; \ n \ u201c伟大的灵魂总是遇到暴力   来自平庸思想的反对。\ u201d \ n&#39;,你&#39; \ u&#39;,&#39; \ n&#39;,   你可以拥有的最美好的经历就是   神秘。这是站在摇篮的基本情感   真正的艺术和真正的科学。\ u201d \ n&#39;,你&#39; \ n&#39;,&#39;,\ n&#39;,   &n;&n 39; \ n \ n \ n不是   对坠入爱河的人负责。\ u201d \ n&#39;,你&#39; \ u2015 \ n&#39;,   &#39; \ n&#39;,你&#34; \ n \ u201并不是我这么聪明。但我留在了   问题要长得多。\ u201d \ n&#34;,你&#39; \ u&#39;,&#39; \ n&#39;]

我觉得必须有一个更好的方法来完成这个,因为这是以列表形式打印并且具有所有这些额外的文本,但我到处都是墙。任何帮助将不胜感激!

由于

1 个答案:

答案 0 :(得分:1)

使用模块beautifulsoup

的python 2x脚本
from __future__ import print_function
from re import sub
from BeautifulSoup import BeautifulSoup
from urllib2 import urlopen
urlpage=urlopen("https://www.goodreads.com/author/quotes/9810.Albert_Einstein").read()
bswebpage=BeautifulSoup(urlpage)
results=bswebpage.findAll("div",{'class':"quoteText"})
for result in results:
    print("\nQuotes\n")
    print(sub("&ldquo;|.&rdquo;","","".join(result.contents[0:1]).strip()))

结果在我身边

Quotes

Two things are infinite: the universe and human stupidity; and I'm not sure about the universe

Quotes

There are only two ways to live your life. One is as though nothing is a miracle. The other is as though everything is a miracle

Quotes

I am enough of an artist to draw freely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world
..............................................
..............................................