Heim  >  Fragen und Antworten  >  Hauptteil

So schreiben Sie eine normale Tag-URL (Python oder JS)

<a target="blank"href="http://a.b.c.d/abc.php?viewkey=11111111111d5c2a51d1e2&amp;page=1&amp;viewtype=basic&amp;category=rf"></a>
<a target="blank"href="http://a.b.c.d/abc.php?viewkey=6d7a7f6a6e9c2a5191e2&amp;page=1&amp;viewtype=basic&amp;category=rf"></a>

<a target="blank"href="http://a.b.c.d/abc.php?viewkey=6d7a7f6a6e9c2a5191e2&amp;page=1&amp;viewtype=basic&amp;category=rf"></a>


<a target="blank"href="http://a.b.c.d/abc.php?viewkey=6d7a7f6a6e9c2a5191e2&amp"></a>

<a target="blank"href="http://a.b.c.d/abc"></a>


<a target="blank"href="http://a.b.c.d/123"></a>

Ich möchte den Link in href bekommen

Die ersten drei der 6 Links erfüllen die Bedingungen zum Schreiben des regulären Ausdrucks (d. h. der Link muss den Parameter viewkey page viewtype Category haben)

Der zweite und dritte Link sind gleich. So duplizieren Sie sie (unter Python)

怪我咯怪我咯2712 Tage vor640

Antworte allen(2)Ich werde antworten

  • 黄舟

    黄舟2017-05-18 10:53:20

    # python 2.7
    
    import re
    
    a = '''<a target="blank"href="http://a.b.c.d/abc.php?viewkey=11111111111d5c2a51d1e2&amp;page=1&amp;viewtype=basic&amp;category=rf"></a>
    <a target="blank"href="http://a.b.c.d/abc.php?viewkey=6d7a7f6a6e9c2a5191e2&amp;page=1&amp;viewtype=basic&amp;category=rf"></a>
    
    <a target="blank"href="http://a.b.c.d/abc.php?viewkey=6d7a7f6a6e9c2a5191e2&amp;page=1&amp;viewtype=basic&amp;category=rf"></a>
    
    
    <a target="blank"href="http://a.b.c.d/abc.php?viewkey=6d7a7f6a6e9c2a5191e2&amp"></a>
    
    <a target="blank"href="http://a.b.c.d/abc"></a>
    
    
    <a target="blank"href="http://a.b.c.d/123"></a>'''
    
    print set(re.findall('''(?=.*(?:viewkey))(?=.*(?:page))(?=.*(?:viewtype))(?=.*(?:category))href=["']([^'"]+)''', a))

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-18 10:53:20

    提取前三个链接:

    links= re.findall(r'href=\"(.*?=rf)\"',l_string,re.S)

    去重:

    new_links=set(links)
    
    

    Antwort
    0
  • StornierenAntwort