代码缩进问题

代码缩进问题,导致代码运行了,以为没运行

问题

求助!!!正则表达式是正确的,但是程序无法运行-CSDN论坛

import requests
import json
import re
import time
from requests.exceptions import RequestException
url ='http://www.24timemap.com/'
def get_one_page(url):
    try:
        headers={
            'User-Agent':'Mozilla/5.0(Macintosh;Intel Mac OS X 10_13_3)AppleWebKit/537.36(KHTML,like Gecko) Chrome/65.0.3325.162 Safari/537.36'
        }
        response = requests.get(url,headers=headers)
        if response.status_code ==200:
            return response.text
        return None
    except RequestException:
        return None
def parse_one_page(html):
    pattern = re.compile('<li.*?bg.*?title.*?>(.*?)</a>(.*?)</li>',re.S)
    items = re.findall(pattern,html)
    for item in items:
        yield {
            'locantion': item[0],
            'time': item[1]
        }


def write_to_file(content):
        with open('slw.txt', 'a', encoding='utf-8')as f:
            f.write(json.dumps(content, ensure_ascii=False) + '\n')

解答

简答:不懂代码缩进问题,以为代码没运行,其实正常运行了

详解

正则表达式是正确的,但是程序无法运行

的确,你的 代码 中 正则(或许)是正确的

而你说的 无法运行,其实:已经运行了

-》已经按照你给的Python的代码 运行了

-》运行结果就是:啥都没干

-》为何啥都没干,是因为你没写代码让其干活

-》具体说就是:你只定义了3个函数(其中一个函数中有你说的正则),但是却没调用(其中任何一个函数)

所以变成你说的:代码无法运行

如何让其运行?

比如代码最后加上

pageHtml = get_one_page(url)
respGenerator = parse_one_page(pageHtml)
for eachItemDict in respGenerator:
  write_to_file(eachItemDict)

就可以实现:

真正调用函数 执行内部的代码和逻辑 -》变成你说希望的:代码真的运行了。

另外,关于代码缩进 导致你代码运行了 但你以为没运行,详见:

results matching ""

    No results matching ""