微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

利用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)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐