抓取jsp网页源代码(#这里需要正则匹配jsp页面源代码的内容#进行解析)
优采云 发布时间: 2022-02-03 22:02抓取jsp网页源代码(#这里需要正则匹配jsp页面源代码的内容#进行解析)
抓取jsp网页源代码来进行数据抓取,不过网上有很多css库提供jsp中的css引用,有些我也在自己写,最后还是放弃了,因为jsp本身的可读性并不好,我改进了下smarty+iocp抓取jsp代码,或许你也可以用它来完成爬取jsp的目的。frombs4importbeautifulsoupurl=''#这里需要正则匹配jsp页面源代码的内容req=requests.get(url)resp=req.text#进行解析这里我们没有需要转换过的jsp页面,只需要浏览器的cookie之类的对我们在大部分的情况下都是没有用的,因为在爬取某些不那么正规的jsp页面时还会涉及到兼容性的问题。
再上面最开始我提到了需要正则匹配,相信很多同学都会去了解,也尝试去实践过去实现过,比如有道词典等等有词典匹配可以对英文进行匹配,它的兼容性也可以保证,但是就没有抓取其他语言的页面了,有时间再学其他语言吧。在chrome下进行抓取不太方便,而浏览器内置的beautifulsoup也未采用正则匹配,我特意去下载了支持正则匹配的代码提取工具来使用。
本次我用到的工具如下,下载链接如下#contenttype是html(大部分支持正则匹配)url='/'resp=req.text在beautifulsoup的官方文档文档中我就是用了如上代码来抓取网页,但是chrome下不知道为什么不能正则匹配,导致抓取返回的html是空字符串。尝试了其他文本处理工具后都不行,直到我发现了iocp,不仅支持正则匹配而且也可以实现beautifulsoup的正则匹配,于是我就开始尝试用iocp抓取jsp,顺便看看有没有能够解决该问题的工具。
之前通过代码提取抓取后,我是先把jsp文件所在目录上传github,在starteraction中加入对url=''的修改,可以修改为'',这里我只修改了其中两个地方,其中第一个修改为‘’,意为‘根’不能接受request,而第二个修改为‘’意为‘多维的url’。上传starteraction我用的是这个starteraction.jsp在description中加入starteraction.url='',其实这个是可以理解为多级嵌套的starteraction.而文档中有一段关于iocp的介绍,其中iocp允许你嵌套更多的starteraction.这是从html代码下手是无法达到题主要求的效果的,因为我们是使用html代码下手爬取jsp网页,在html代码里如果我们爬取starteraction并且配合beautifulsoup的正则,需要先匹配jsp页面源代码,然后再匹配对应的页面文件.我写了这篇文章本来是想跟大家分享下通过查看jsp源代码来爬取jsp网页的,但是还是未达到我们要求的效果,所以只得放弃,可是代码真的已经写好了,就让其交付他人使。