php抓取网页匹配url(优采云采集器如何利用字符串方式获取目标信息?(一))
优采云 发布时间: 2021-10-03 11:06php抓取网页匹配url(优采云采集器如何利用字符串方式获取目标信息?(一))
为了全局使用这个 CookieContainer,你可以将它作为一个全局变量使用,这样你就可以在下一个请求中将它赋给 CookieContainer 属性。
更多关于 CookieContainer 的信息参见:(VS.80).aspx
维护好这个CookieContainer,我们就可以登录后访问页面,模拟需要解决的登录问题。
下一个问题自然是:如何从网页中获取你想要的信息?
抓取网页上的信息,是最简单也最繁琐的实现方式,即获取模板的方法。从优采云采集器的配置过程来看,也是采用这种方式。就是这样,但是人们可以将抓取器做成成熟的产品并畅销。这是无与伦比的,所以它的成功并不完全取决于技术。虽然优采云采集器配置起来比较麻烦,但是看起来还是不错的。
这样,你需要制作一个模板。你需要知道目标网页的结构,知道你要找的信息在哪里,然后记录前后的字符串。您可以通过截取字符串来获取目标。也可以使用正则表达式获取信息。必须确保前后字符串是唯一的。这很简单。可以通过计算或者匹配的方式获取目标信息,但是在实践中还是存在一些问题:
下面是我遇到的问题;
1.首先想用正则表达式来匹配,但是模块中设置的前缀和后缀有回车换行\r\n,结果总是不成功。我的常规技能很差,终于知道怎么回事了,把\r\n换成(\s*),问题解决了,你能找出原因吗?
2. 使用字符串截取方式获取,不是很精通常规规则,使用这种方式最安全,但是在截取字符串之前,记得调整目标页面代码,前缀和从xml配置文件中读取的后缀中可能是回车和换行,但是回车和换行的字符行为在不同的系统中是不同的。在Windows中是\r\n,在Linux中是\n,所以记得统一。
3. 前缀和后缀不是唯一的。有时页面上有两个不同的目标信息,但它们具有相同的前缀,例如:
数据库
软件工程师
如果使用相同的前缀,拦截想要的信息会比较困难。我想到了一个办法。当然,方法可能很笨,但问题解决了。使用多个字符串定位Target信息也是优采云的启示,比如我要抓软件工程师,前缀是:
*
信息可能不同的地方用*替换,类似通配符。这样,用*把一个字符串一分为二,先找到第一个,然后以此索引位置为起点,再找到第二个字符串,这样就可以定位最终的信息,也可以用多个三个以上的字符串,这个实现就是为了解决问题,希望有更好的方法,希望以后能改进。
4. 你也可以在获取信息时使用 MITHtmlPparser。这是一个开源库。您可以在codeproject中找到它并分析网页中的所有标签。如果信息不是太多,它是非常零散的。,这个也比较好用,你只需要知道最终信息里面是哪个标签,然后直接拿出来就行了。
嗯,希望我能在新的一年多学点,经得起考验!
本站采用创意分享版权协议,要求签名,非商业性且一致。本站欢迎任何非商业用途的转载,但必须注明出自“发书”,保留原链接,同时必须注明原标题和链接。
标签:采集