利用python爬取图书信息,转译序列为简体中文

起因是毕业设计需要大量的图书信息来填充数据库,所以想到利用爬虫来爬取学校图书馆内的藏书信息。

我使用的是python里面的requests库来实现爬虫的

简单的语法
response = requests.get("url")  #生成一个response对象

response.encoding = response.apparent_encoding #设置编码格式

print("状态码:"+ str( response.status_code ) ) #打印状态码

html = response.text

print(response.text)#输出爬取的信息

拿到页面代码之后,需要先截取出我们需要的部分内容

msg = re.findall('<div class="list_books">(.*?)</div>',html,re.S)
# 其中`re.S`是将此`div`内的所有内容包括换行截取出来,如果只需要截取一行,就不需要加这个

接着,我需要的只是其中的文字内容,所以得利用正则来去掉其他内容

def remove_html_tag(content):
    return re.sub(r'</?\w+[^>]*>', '', content)

截取完成后,我发现网页上看上去是简体中文,但代码里是多个 HTML、XML 等 SGML 类语言的转义序列(&#x开头)

可利用python轻松转换为我们熟知的简体中文
def convert_to_cn(text):
    text = re.sub(r'&#x([A-F0-9]{2});', r'&#x00\1;', text)
    return text.replace('&#x', r'\u').replace(';', '').encode('utf-8').decode('unicode-escape')

然后就可以开始讲一开始获取好的msg进行遍历,变成我需要的数据

for item in msg:
    s = convert_to_cn(remove_html_tag(item))
    str = str + s
    print(s)

最后就是将转译好的图书信息输出文件上了

file = open('D:/Python/ab.txt','w')
file.write(str)

这样就搞定了,成功的获取了足够的图书信息。

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...