일반적인 질문으로이 질문을하려고 시도했으나 시도하기가 너무 복잡했습니다. 그것을 일반적으로 묘사하십시오. 그래서 구체적으로 여기에 있습니다 :Python - 텍스트 줄 읽기, html 탐색 및 단일 for 루프 내 문서 작성하기
저는 프로그래머가 아닙니다. 나는 실험 심리학에서 석사 과정을 밟았으며 통계 수업을위한 부 프로젝트로 Steam에서 게임 구매를 예측하기위한 모델을 만들었습니다. 이 프로젝트의 데이터를 수집하기 위해 프로그래밍하는 법을 배우기 시작했습니다. 다음과 같이
내 프로그램은 지금까지입니다 :
#The first line opens up a list of random Steam IDs i already created,
#the second assigns them to a variable
list = open('d:\python\SteamUserIDs.txt').read().splitlines()
SteamID = str(list)
#For the purposes of figuring things out, I'm using just the first 10 entries in my list
#The next four lines are the URL requests and assigning the output to a variable "response"
for SteamID in list[0:10:1]:
request = urllib2.Request('http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=MYSTEAMAPIKEY&steamid=%s' %SteamID, headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36"})
response = urllib2.urlopen(request)
request2 = urllib2.Request('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0001/?key=MYSTEAMAPIKEY&steamids=%s' %SteamID, headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36"})
response2 = urllib2.urlopen(request2)
f1 = open('D:/Python/Steam/UserData/%s PlayerInfo.txt'% (SteamID,), 'w')
for lines in response.readlines():
f1.write(lines)
for lines in response2.readlines():
f1.write(lines)
f1.close()
는 지금까지이 프로그램이 큰 노력하고 있습니다. 그것은 필요한 일을하지만 더 많은 정보가 필요합니다. 불행히도 Steam API를 통해 내가 관심있어하는 추가 변수에 액세스하는 방법을 찾지 못했습니다. 그러나 관심있는 나머지 정보는 Steam의 html 소스 사용자 프로필에서 사용할 수 있습니다. 이것은 내가 문제가있는 곳입니다. 두 번째 요청의 줄에서 프로필 URL을 가져올 수 있습니다.
"PLAYERID는"사용자가 자신에게
또는
"profileurl": "http://steamcommunity.com/profiles/STEAMNUMBER/"
를 생성하는 문자열 인
"profileurl": "http://steamcommunity.com/id/PLAYERID/"
"STEAMNUMBER : 두 번째 URL 요청에
는 하나를 읽어 줄있다 "는 steam에 의해 생성 된 숫자입니다 (이것은 SteamID 변수에서 사용 된 것과 같습니다). 사용자가 자신의 프로필에 대한 사용자 지정 이름을 만들지 않았을 때 사용되는 것 같습니다.문제 1 : 위의 플레이어 URL을 인쇄하는 데 어려움이 있습니다. 나는 "profileurl"을 사용하려고 시도했다 : target으로 그리고 나서 URL을 캡쳐하기 위해 line.split()을 사용했지만, 나는 항상 탭과 리턴을 나타내는 펑키 한 문자로 끝난다. 그리고 나는 어떻게 제거 할 지 모르겠다. 따옴표.
문제 2 : html 페이지가 표시되면 손으로 데이터를 찾을 수는 있지만 파이썬에서 찾도록 지시하는 방법을 모르겠습니다. 관심있는 정보 중 하나는 사람이 한 리뷰의 양입니다. 당신은 HTML의이 부분에서이 정보를 찾을 수 있습니다이 부분에 대한
<div class="profile_count_link">
<a href="http://steamcommunity.com/id/STEAMUSER/recommended/">
<span class="count_link_label">Reviews</span>
<span class="profile_count_link_total">
3
를, 내가 관심이있는 모든 숫자입니다,하지만 난에 있는지를 캡처하는 방법으로 손해를보고 정말이야 내가 참조로 사용하고있는 텍스트와 다른 줄.
문제점 3 :이 코드를 현재 프로그램 내에서 for 루프 내에 유지하여 숫자가 같은 문서에 표시되도록 할 수 있습니까? 프로필 URL을 찾기 위해 코드 조각을 추가하려고 시도했지만 시도한 후에 이전 응답의 일부가 손실되기 시작했습니다.
오랫동안 방치 된 게시물에 대해 죄송합니다.
나는 이해하지 못한다. 서버에서 html 또는 JSON을 수신합니까? – njzk2
기본값으로 JSON이라고 들었지만 JSON이 무엇인지 모르겠습니다. – userPinealbody