2016-12-10 3 views
0

웹 사이트를 스크랩하려고합니다. 축구 웹 사이트는 모든 계절의 모든 경기를 나열합니다.python urlopen : URL의 첫 번째 속성 만 데이터로 가져옵니다.

url = 'http://www.lfp.fr/ligue1/calendrier_resultat#' 
data = {'sai':77,'jour':10} 
url_values = urlencode(data) 
response = urlopen(url,url_values) 
soup = BeautifulSoup(response) 

제사 시즌 이며 주르가 있습니다 : http://www.lfp.fr/ligue1/calendrier_resultat#sai=77&jour=1

내가 뭐하는 거지 것은 : 그래서 내가 계절마다 여기 의 모든 게임의 HTML 페이지를 스크랩 노력하고있어 URL입니다 주

문제는 주어진 페이지가 'sai'값에 따라 다르다는 것과 'jour'가 같은지 여부와 관계없이 항상 동일한 페이지를 반환하며 항상 마지막 주일 것입니다.

예를 들어 다음과 같은 url을 입력 할 수 있습니다. http://www.lfp.fr/ligue1/calendrier_resultat#sai=77OUHIGYGO8TY98 sai = 77 이후에는 어떤 내용이든 상관하지 않습니다. 나는 이것이 왜 이것을하는지 모르며 나는 정말로 도움이 필요하다. 감사합니다

+0

서버는 아마도'#'다음에 아무것도 무시할 것이므로 두 매개 변수 중 하나라도 URL에 차이가 있다면 놀랄 것입니다. 또한 URL을 단순히 가져 오는 것이 아니라 'url'의 형식으로 데이터를 POST하는 것으로 생각합니다. 어쨌든 콘텐츠가 javascript를 사용하여 동적으로로드되는 것처럼 보이므로 셀렌을 사용해야합니다. 본 기회! –

+0

오, 셀레늄에 대해 들었습니다. 나는 이것을 고려할 것입니다. 고마워요! –

답변

0

다른 stackoverflow 게시물 '답변 덕분에, 마침내 문제가 해결되었습니다.

여기에서 문제는 # 이후의 URL 부분이 서버로 전송되지 않는 클라이언트 쪽 부분이라는 점입니다. 실제로 서버에 전송되는 실제 URL이 있으며 Mozilla를 사용하여 찾았습니다. 개발자 도구로 이동하여 네트워크 탭으로 이동하십시오. 왼쪽의 탭 요소를 스크롤하면 각 요소에 대해 해당 "요청 URL"이 표시됩니다. 주의를 기울이면 URL에 # 기호가있는 요청 URL을 가진 올바른 요소를 찾을 수 있습니다. 복사하여 붙여 넣기 만하면 문제가 해결됩니다.