做一个简单的练习
目标:爬取中文小说
目标网站:http://www.biqule.com/book_58/26986.html
只爬取正文部分。
使用requests库来获取网页信息,使用re库正则匹配正文文本。
这里有一点需要注意的是测试时是使用linux环境下的python,默认编码为utf-8。网页中文文本为gbk编码。读取时需要指定编码为gbk,不然会出现乱码的现象。
具体代码如下:
#!/usr/bin/python3
import requests
from requests.exceptions import RequestException
import re
def open_index(url):
try:
response = requests.get(url)
if response.status_code == 200:
response.encoding = 'gbk'
return response.text
return None
except RequestException:
return None
def parse_one_page(html):
pattern = re.compile(' (.*?)<br />',re.S)
items = re.findall(pattern,html)
print(items)
def main():
url = "http://www.biqule.com/book_58/26986.html"
html = open_index(url)
parse_one_page(html)
if __name__ == '__main__':
main()