起因是毕业设计需要大量的图书信息来填充数据库,所以想到利用爬虫来爬取学校图书馆内的藏书信息。
我使用的是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'�\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)
这样就搞定了,成功的获取了足够的图书信息。