파이썬 코드 질문
본문
from requests import get
value = '벨류값'
URL = '내사이트'
원본
print get('{}/경로/value={}'.format(URL, value).text.split('<!DOCTYPE html>')[0]
수정
print (get('{}/경로/value={}'.format(URL, value).text.split('<!DOCTYPE html>')[0])
파이썬 코드가 현재 이런식으로 되어있는데
막상 실행하면 코드는 적용되나, text split으로 보여주질 않습니다.
혹시 제가 모르는 부분이나 잘못된 부분이 있다면 말씀부탁드립니다
* 수정한 이유는 파이썬최신에서 원본코드가 실행되지 않아 최신코드형태로 수정했습니다.
답변 3
확실치는 않은데, 이렇게 해보면 어떨지요..
(get 을 먼저하고, 그 결과의 텍스트를 split)
print(get('{}/경로/value={}'.format(URL, value)).text.split('<!DOCTYPE html>')[0])
※ 문자열 Data를 처리하지 못함일 것입니다 !
>>> 경로 / 값이 문제를 일으킬 수 있음
>>> 약간 다른 구성입니다.
from requests import get, RequestException
value = 'values'
URL = 'My_site'
try:
print(f"Requesting URL: {URL}/경로/value={value}")
response = get(f"{URL}/경로/value={value}")
if response.status_code == 200:
if '<!DOCTYPE html>' in response.text:
print(response.text.split('<!DOCTYPE html>')[0])
else:
print("Expected HTML format not found in response.")
else:
print(f"Request failed with status code: {response.status_code}")
print("Check if the path or URL is correct.")
except RequestException as e:
print("A network error occurred. Please check the network connection or the server status.")
print(f"Error details: {e}")
=== 참고만 하세요 ~
> 실패 이유가 경로 문제인지,
값 문제인지, 혹은 응답 형식의 문제인지 명확히 알 수 있을 것입니다.
. .
※ 실 사용으로, <DOCTYPE html>
태그 이전의 텍스트를 가져오는데 사용할 만한 소스.
from requests import get, RequestException
value = 'values'
URL = 'My_site'
def fetch_content(url, path, value):
full_url = f"{url}/{path}/value={value}"
try:
response = get(full_url, timeout=5)
if response.status_code == 200:
content = response.text
split_content = content.split('<!DOCTYPE html>', 1)[0]
if split_content:
return split_content
else:
return "No content found before <!DOCTYPE html>."
else:
return f"Request failed with status code: {response.status_code}."
except RequestException as e:
return f"Network error: {e}"
result = fetch_content(URL, '경로', value)
print(result)
print((get('{}/경로/value={}'.format(URL, value)).text.split('<!DOCTYPE html>')[0]))
답변을 작성하시기 전에 로그인 해주세요.