Home > Backend Development > PHP Tutorial > 求一个PHP正则

求一个PHP正则

WBOY
Release: 2016-06-23 14:11:27
Original
965 people have browsed it



24.143.198.188
<script> <br /> document.write(":"+x+f) <br /> </script>
:80

HTTP
250,890,890
United States

我想取出其IP和端口号;

主要是为了提取http://www.cnproxy.com/proxy1.html这个网页上的代理服务器
24.143.198.188:80
37.57.20.143:3128
37.59.48.180:8118


回复讨论(解决方案)

这不是简但的正则就可完成的
比如

77.37.134.58<script>document.write(":"+ z+c+a+x)</script> HTTP 188,907,922 Russia
77.37.134.58 是服务器ip
z+c+a+x 才是端口号,需要计算出真实值。
而这些 js 变量是在前面的
<script> <br /> z="3";m="4";a="2";l="9";f="0";b="5";i="7";w="6";x="8";c="1";</script>
中赋值的

这不是简但的正则就可完成的
比如

77.37.134.58<script>document.write(":"+ z+c+a+x)</script> HTTP 188,907,922 Russia
77.37.134.58 是服务器ip
z+c+a+x 才是端口号,需要计算出真实值。
而这些 js 变量是在前面的
<script> <br /> z="3";m="4";a="2";l="9";f="0";b="5";i="7";w="6";x="8";c="1";</script>
中赋值的 那我再看看,我是看到python中有实现这个功能,想试试php能做一个不。
def build_list_urls_6(page=3):	page=page+1	ret=[]	for i in range(1,page):		ret.append('http://www.cnproxy.com/proxy%(num)01d.html'%{'num':i})			return retdef parse_page_6(html=''):    matches=re.findall(r'''<tr>        <td>([^&]+)                     #ip        &#8204&#8205        \:([^<]+)                       #port        </td>        <td>HTTP</td>        <td>[^<]+</td>        <td>([^<]+)</td>                #area        </tr>''',html,re.VERBOSE)	    ret=[]    for match in matches:        ip=match[0]        port=match[1]        type=-1          #该网站未提供代理服务器类型        area=match[2]        if indebug:print '6',ip,port,type,area        area=unicode(area, 'cp936')         area=area.encode('utf8')         ret.append([ip,port,type,area])	return ret
Copy after login

但他的端口(port)取得也不对!

但他的端口(port)取得也不对!  function parsePort($str)
    {
        $str = str_replace('document.write(":"', '', $str);
        $str = str_replace(')', '', $str);
        $str = str_replace('+x', '8', $str);
        $str = str_replace('+f', '0', $str);
        $str = str_replace('+z', '3', $str);
        $str = str_replace('+c','1', $str);
        $str = str_replace('+a','2', $str);
        $str = str_replace('+i','3', $str);
        $str = str_replace('+l','9', $str);
        return ':'.$str;
    }

谢谢版主大人,解决了

那恭喜你了

不过你还要注意检查一下,每一页的 
<script> <br /> z="3";m="4";a="2";l="9";f="0";b="5";i="7";w="6";x="8";c="1";</script>
是否都一样

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template