鱼C论坛

 找回密码
 立即注册
查看: 1727|回复: 5

[已解决]正则表达式出现异常

[复制链接]
发表于 2021-10-1 20:29:52 | 显示全部楼层 |阅读模式

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

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

x
正则表达式部分出现阴影,pycharm一直显示在运行,但是就是不出现结果

  1. import requests
  2. from requests.exceptions import RequestException
  3. import re

  4. headers = {
  5.             'Content-Type': 'text/html; charset=utf-8',
  6.             'Origin': r'https://maoyan.com',
  7.             'Referer': r'https://maoyan.com/board/4',
  8.             'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
  9.         }
  10. cookies ={"Cookie":"""__mta=145013643.1632827792736.1633057494521.1633061039391.33; uuid_n_v=v1; uuid=85DA7560204D11EC9B102B1A959882D0A97A7D0F881E4ACF90ED4B138FB89D1E; _lxsdk_cuid=17c2c1edc9ec8-0f7c6d795c2f3d-a7d193d-144000-17c2c1edc9ec8; _lxsdk=85DA7560204D11EC9B102B1A959882D0A97A7D0F881E4ACF90ED4B138FB89D1E; _csrf=c996b5dd3a909586fa13721ce47e20c12cb7b63b30767bb486a654d025637589; Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1632995467,1632999503,1633005709,1633053333; _lx_utm=utm_source%3DBaidu%26utm_medium%3Dorganic; __mta=145013643.1632827792736.1632838202638.1633053344019.31; Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1633061039; _lxsdk_s=17c3a05eba0-622-9ad-929%7C%7C3"""}

  11. def get_one_page(url):
  12.     try:
  13.         response = requests.get(url,headers=headers,cookies=cookies)
  14.         if response.status_code == 200:
  15.             return response.text
  16.         return None
  17.     except RequestException:
  18.         return None



  19. def parse_one_page(html):
  20.     pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?src="(.*?)".*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">(.*?)</i><dd>', re.S)
  21.     items = re.findall(pattern,html)
  22.     print(items)

  23. def main():
  24.     url = "https://maoyan.com/board/4"
  25.     html = get_one_page(url)
  26.     parse_one_page(html)

  27. if __name__ == '__main__':
  28.     main()
复制代码


最佳答案
2021-10-2 11:45:09
好久没用过正则了,昨天还专门去看了一下,不知道是不是 findall 和分组不太搭,我是先 findall,再遍历分组的
  1. import re

  2. with open('wyyname.html', 'r',encoding='utf8') as f:
  3.     html = f.read()

  4. pattern = re.compile('<dd>.*?<img data-src=".*?" alt=".*?" class="board-img" />.*?</dd>', re.S)
  5. items = pattern.findall(html)
  6. pattern1 = re.compile('<dd>.*?<img data-src="(.*?)" alt="(.*?)" class="board-img" />.*?</dd>', re.S)
  7. for item in items:
  8.     # print(item)
  9.     i1 = pattern1.search(item).group(1)
  10.     i2 = pattern1.search(item).group(2)
  11.     print(i2+':'+i1)

复制代码
屏幕截图 2021-10-01 201408.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-1 21:21:09 | 显示全部楼层
是不是我的正则写的有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-1 22:09:05 | 显示全部楼层
我找到原因了,其实正则没有错,我这次写的稍微短了一点,运行成功了、
大家随便回复一下,我设置成最佳答案,不浪费公共资源了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-2 11:45:09 | 显示全部楼层    本楼为最佳答案   
好久没用过正则了,昨天还专门去看了一下,不知道是不是 findall 和分组不太搭,我是先 findall,再遍历分组的
  1. import re

  2. with open('wyyname.html', 'r',encoding='utf8') as f:
  3.     html = f.read()

  4. pattern = re.compile('<dd>.*?<img data-src=".*?" alt=".*?" class="board-img" />.*?</dd>', re.S)
  5. items = pattern.findall(html)
  6. pattern1 = re.compile('<dd>.*?<img data-src="(.*?)" alt="(.*?)" class="board-img" />.*?</dd>', re.S)
  7. for item in items:
  8.     # print(item)
  9.     i1 = pattern1.search(item).group(1)
  10.     i2 = pattern1.search(item).group(2)
  11.     print(i2+':'+i1)

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-2 17:26:40 | 显示全部楼层
白two 发表于 2021-10-2 11:45
好久没用过正则了,昨天还专门去看了一下,不知道是不是 findall 和分组不太搭,我是先 findall,再遍历分 ...

谢谢回复
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-2 17:33:23 | 显示全部楼层

你写 findall 可以用分组吗?我只有遍历 findall 的数据,然后再正则用 search 分组才行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 09:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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