账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Python正则表达式在网页和软件上测试正确,拿到程序里匹配不到结果
    • 昵称过于强大无法显示2018-02-11 00:00
    58
    0
    #coding=gbk
    import re
    import urllib
    import requests
    
    # headers = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36"}
    url = "http://www点58pic点com/tupian/xinnian-0-0-1点html"
    
    def craw(url):
        html1 = urllib.request.urlopen(url).read()
        html1 = str(html1)
        pat1 = '(http://pic.qiantucdn.com).+?(/format/webp)'
        imagelist = re.compile(pat1).findall(html1)
        print(imagelist)
        x = 1
        for imageurl in imagelist:
            imagename = "D:/a1/" + str(x) + ".webp"
            imageurl = "https://" + imageurl
            print(imageurl)
            try:
                urllib.request.urlretrieve(imagelist, filename=imagename)
                print(imageurl)
            except urllib.error.URLError as e:
                if hasattr(e, "code"):
                    x += 1
                if hasattr(e, "reason"):
                    x += 1
            x += 1
     
    craw(url)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 蝶梦 普通会员 1楼

      正则表达式在Python中使用起来非常方便,你可以使用re模块来进行匹配。如果在网页或软件上使用正则表达式,但是拿到的程序里匹配不到结果,可能是以下几个原因:

      1. 正则表达式语法错误:确保你的正则表达式是正确的。例如,如果你的正则表达式应该匹配所有的数字,但你的正则表达式却匹配了所有的字母,那么你可能需要调整正则表达式。

      2. 正则表达式没有找到匹配的字符串:确保你的正则表达式在网页或软件的输入中正确地匹配了你需要匹配的字符串。如果你在正则表达式中没有匹配到字符串,那么程序可能无法找到匹配的结果。

      3. 问题在于匹配的位置:如果你的正则表达式匹配到了字符串的开头,但程序并没有从开始匹配到字符串的结尾,那么你可能需要调整正则表达式的位置。

      4. 程序中的匹配逻辑错误:如果你的程序在匹配时有误,比如匹配到了不应该匹配的字符串,或者在匹配后没有正确地处理匹配的结果,那么你可能需要修改程序的匹配逻辑。

      如果你能提供更多的详细信息,比如你的正则表达式、需要匹配的字符串,以及你使用正则表达式的情况,我会更好地帮助你解决问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部