python爬取网站上所有诗句(第三版)

第一版:

#-*-coding:utf8-*-

import requests
import re

# 获取网页源代码
kv = {'user-agent':'Mozilla/5.0'}
url = 'http://www.shicimingju.com/shicimark/qixijie.html'
html = requests.get(url, headers=kv)

poem = re.findall('
(.*?)
',html.text,re.S) for each in poem: print(each)

这里通过requests库来获取网页源代码,再通过正则表达式来获取诗句,最后将需要的结果打印。

第二版:

import requests
import string
import re

# 获取网页源代码
kv = {'user-agent':'Mozilla/5.0'}
url = 'http://www.shicimingju.com/shicimark/qixijie.html'
html = requests.get(url, headers=kv)

poem = re.findall('
(.*?)
',html.text,re.S) # 输出诗句信息 # i = 0 # for each in poem: # result = str.strip(each) # i += 1 # print('%d'%i + ':%s\n'%result) # 将信息写入poem.txt文件 f = open('poem.txt','a',encoding='utf-8') i = 0 for each in poem: i += 1 result = str.strip(each) f.write('%d'%i + ' : %s'%result + '\n\n') print('The work have done')

这里对程序进行了审美的优化,另外将所有信息写入到了poem.txt文件中。(pycharm : 这里的poem.txt在工程内部,不需要写绝对路径了)

第三版 :
这里是用XPath来代替正则表达式来做的,代码如下

from lxml import etree
import requests
import string

# 获取网页源代码
kv = {'user-agent':'Mozilla/5.0'}
url = 'http://www.shicimingju.com/shicimark/qixijie.html'
html = requests.get(url, headers=kv)
selector = etree.HTML(html.text)
content = selector.xpath('//div[@class="summary"]/text()')

f = open('poem.txt','a',encoding='utf-8')
i = 0
for each in content:
    i += 1
    each = str.strip(each)
    f.write('%d' % i + ' : %s' % each + '\n\n')

print('The work have done')

python爬取网站上所有诗句(第三版)_第1张图片

你可能感兴趣的:(爬虫入门)