爬取后的文字解析工作
各位小伙伴们,咱们继续开黑,上午我们爬完的表格的内容,是时候把那些无关紧要的标签都fire掉。
承接着上文啊,我们用beautifulsoup去处理吧,难受的是以导包就出现问题了,够呛哥内心也是很崩溃的。
一、对于cannot import name 'HTMLParseError'的处理
其实升级就行了:进入cmd→输入pip install --upgrade beautifulsoup4 。知乎上的老铁也有他们的骚操,详细自己看看吧。
二、开始测试一下:
gd = getData(URL)#看我的博客《爬取动态网站表格内容》 bs = BeautifulSoup(gd.get_html(),"lxml") print(bs.text)
得到的结果:
啧~有空格好难受!
三、开始处理
观众老爷们正则表达式了解一下?点击了解正则表达式
for循环的第一个判断,是用于提出“首页……尾页”这一个干扰选项,不把它删掉可能会报下标溢出的错误。然后我们在最后处理完p开头和结尾的空字符串,其实它的本体是一堆\r\n。
gd = getData(URL) bs = BeautifulSoup(gd.get_html(),"lxml") for t in bs.find_all('tr'): if re.match('首页上页123456789...下页尾页', t.text): continue p = re.split('\s',t.text) p.pop() del p[0] print(p)
好了看输出:
四、放到excel里面
大家可以参考一下Sukie_csdn写的博客真的超级棒,超级详细,文章的一开始是讲xlrd这个是用来读excel的,假如你不看想看可以跳过,你直接看xlwt的操作。网址:sukie对xlwt及xlrd解析的链接
# 解析文字信息,存储信息 data=[] j=0 gd = getData(URL) bs = BeautifulSoup(gd.get_html(), "lxml") excel = xlwt.Workbook() sheet1 = excel.add_sheet(u'sheet1', cell_overwrite_ok=True) for t in bs.find_all('tr'): if re.match('首页上页123456789...下页尾页', t.text): continue data = re.split('\s', t.text) data.pop() del data[0] for i in range(0,8): sheet1.write(j,i,data[i]) j += 1 excel.save("D:\python_excel\demo1.xlsx")
最看看效果图:
有什么问题欢迎留言~谢谢Sukie_csdn写的一篇那么详细的文章~emmm……要不要考虑把它放到数据库里面?下一篇放到mongoDB?其实有个小小的bug