鱼C论坛

 找回密码
 立即注册
查看: 803|回复: 3

[已解决]字符串提取问题,求指点。

[复制链接]
发表于 2020-3-18 22:10:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354032.html">VIP上架公告</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354035.html">关于猫腻的庆余年(浮见君)</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354037.html">6.29晚八点《庆余年》作者 “猫腻”与您相约起点作者名家访谈</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354039.html">无尽的鄙视(苍穹)</a></dd>
                        
                        
                        
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354046.html">牛栏街事件新闻(记者:海棠依旧在及…)</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354047.html">那夜嚣张的雨(作者:苍穹)</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354048.html">封推感言</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354050.html">今天,你范建了吗?(作者:厉无咎)</a></dd>
                        
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354056.html">范建教子(作者:万里流)</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354058.html">卷末小结及去年回顾及回乡总结</a></dd>
                        
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354062.html">四川!四川!捐款细项</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354064.html">默哀</a></dd>
                        <dd><a href="https://www.biquge5200.cc/60_60363/141354066.html">雨打风吹亦难去之陈萍萍(作者:小孙北京)</a></dd>

最近在研究字符串提取问题。如上述部分字符串,我想提取出url地址信息及标题信息分别提取,目前无论是使用正则表达式还是采用字符串阶段的方式都是会遇到换行循环中断。请问大神应该如何编写代码,一下代码分别是使用正则表达式及字符串截取的方式进行提取。。。应该如何修改条件。。。。


正则表达式提取方式:
import re
with open('c:\\Users\\lee\\Documents\\编程练习\\qyn.txt',encoding='UTF-8') as f:
    url_file=open('qynurl.txt','w',encoding='UTF-8')
    for each in f:
        url=re.search("https://www.biquge5200.cc/60_60363/[0-9]*\.html",each )
        url_file.writelines(url.group()+'\n')
        print(url.group())
url_file.close()


字符串提取方式:
with open('c:\\Users\\lee\\Documents\\编程练习\\qyn.txt',encoding='UTF-8') as f:
    for each_line in f:
        if each_line !='\n\n':
            url=each_line.split(""",49) 
            print(url[1])
最佳答案
2020-3-20 23:08:02
假面的假面 发表于 2020-3-20 00:10
首先非常感谢您的解答,但是用您的方法依然是会遇到空行时系统报错。
体统报错如下:
Traceback (most  ...

search没有找到会返回None,给你改了改:
import re
with open('c:\\Users\\lee\\Documents\\编程练习\\qyn.txt',encoding='UTF-8') as f:
    url_file=open('qynurl.txt','w',encoding='UTF-8')
    for each in f:
        url=re.search("https://www.biquge5200.cc/60_60363/[0-9]*\.html",each )
        if url:
            if len(url.group())!=0:
                url_file.writelines(url.group()+'\n')
                print(url.group())
url_file.close()
PS:其实with里面可以再来一个with的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 08:08:41 | 显示全部楼层
本帖最后由 walleeee 于 2020-3-19 08:13 编辑
import re
with open('c:\\Users\\lee\\Documents\\编程练习\\qyn.txt',encoding='UTF-8') as f:
    url_file=open('qynurl.txt','w',encoding='UTF-8')
    for each in f:
        url=re.search("https://www.biquge5200.cc/60_60363/[0-9]*\.html",each )
        if len(url.group())!=0:
            url_file.writelines(url.group()+'\n')
            print(url.group())
url_file.close()
试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 00:04:29 | 显示全部楼层

非常感谢,但是问题依旧。。。
---------- runpython ----------
https://www.biquge5200.cc/60_60363/141353990.html
https://www.biquge5200.cc/60_60363/141353991.html
https://www.biquge5200.cc/60_60363/141353993.html
https://www.biquge5200.cc/60_60363/141353995.html
https://www.biquge5200.cc/60_60363/141353997.html
https://www.biquge5200.cc/60_60363/141353999.html
https://www.biquge5200.cc/60_60363/141354001.html
https://www.biquge5200.cc/60_60363/141354003.html
https://www.biquge5200.cc/60_60363/141354005.html
https://www.biquge5200.cc/60_60363/141354007.html
https://www.biquge5200.cc/60_60363/141354009.html
https://www.biquge5200.cc/60_60363/141354011.html
https://www.biquge5200.cc/60_60363/141354012.html
https://www.biquge5200.cc/60_60363/141354014.html
https://www.biquge5200.cc/60_60363/141354016.html
https://www.biquge5200.cc/60_60363/141354018.html
https://www.biquge5200.cc/60_60363/141354020.html
https://www.biquge5200.cc/60_60363/141354021.html
https://www.biquge5200.cc/60_60363/141354023.html
https://www.biquge5200.cc/60_60363/141354025.html
https://www.biquge5200.cc/60_60363/141354027.html
https://www.biquge5200.cc/60_60363/141354029.html
https://www.biquge5200.cc/60_60363/141354030.html
https://www.biquge5200.cc/60_60363/141354032.html
https://www.biquge5200.cc/60_60363/141354035.html
https://www.biquge5200.cc/60_60363/141354037.html
https://www.biquge5200.cc/60_60363/141354039.html
Traceback (most recent call last):
  File "txt7.py", line 7, in <module>
    if len(url.group())!=0:
AttributeError: 'NoneType' object has no attribute 'group'

输出完成 (耗时 0 秒) - 正常终止
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 00:10:57 | 显示全部楼层

首先非常感谢您的解答,但是用您的方法依然是会遇到空行时系统报错。
体统报错如下:
Traceback (most recent call last):
  File "txt7.py", line 7, in <module>
    if len(url.group())!=0:
AttributeError: 'NoneType' object has no attribute 'group'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 21:53:38 | 显示全部楼层
求助////
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 21:56:08 From FishC Mobile | 显示全部楼层
假面的假面 发表于 2020-3-20 21:53
求助////

用xpath如何???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 23:08:02 | 显示全部楼层    本楼为最佳答案   
假面的假面 发表于 2020-3-20 00:10
首先非常感谢您的解答,但是用您的方法依然是会遇到空行时系统报错。
体统报错如下:
Traceback (most  ...

search没有找到会返回None,给你改了改:
import re
with open('c:\\Users\\lee\\Documents\\编程练习\\qyn.txt',encoding='UTF-8') as f:
    url_file=open('qynurl.txt','w',encoding='UTF-8')
    for each in f:
        url=re.search("https://www.biquge5200.cc/60_60363/[0-9]*\.html",each )
        if url:
            if len(url.group())!=0:
                url_file.writelines(url.group()+'\n')
                print(url.group())
url_file.close()
PS:其实with里面可以再来一个with的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 23:45:28 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-3-20 23:08
search没有找到会返回None,给你改了改:PS:其实with里面可以再来一个with的

非常感谢您回复和指点。您也让我牢固的认识到了对于基础知识掌握是件多么重要的事情。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 23:45:59 | 显示全部楼层
wp231957 发表于 2020-3-20 21:56
用xpath如何???

非常感谢您的回复。但是对于xpath我不是熟悉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 23:46:33 | 显示全部楼层
假面的假面 发表于 2020-3-20 23:45
非常感谢您回复和指点。您也让我牢固的认识到了对于基础知识掌握是件多么重要的事情。

谢谢支持。实践固然关键,但基础同样重要。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 04:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表