파이썬 기계화는 두 번째 오픈에서 속성을 잃습니다
문제
이것은 정말 전문화 된 사건이며 나는 그것을 묻는 어색한 느낌입니다. 그러나 나는 Wits 끝에 있습니다.
양식과 결과 페이지를 통해 추적 번호를 따라야하므로 Python에서 Mechanize를 사용하고 있으므로 양식 제출 후 링크는 JavaScript에 포함되므로 단순히 _link를 따라갈 수 없습니다. 내가하고 싶은 것은 URL을 다시 배출 한 다음 전화를 요청하는 것입니다. open()
그러나 내가 할 때 - 나는 몇 가지 문제가 발생합니다.
전화 할 수 있습니다 br.geturl()
그리고 br.title()
대상 페이지에서는 괜찮지 만 문제의 페이지 소스를 읽을 시간이되면 던졌습니다.
AttributeError: mechanize._mechanize.Browser instance has no attribute read (perhaps you forgot to .select_form()?)
이 작업을 수행 할 수있는 방법이 있습니까?
편집 [더 많은 코드 {정말 추악한 일이 작동하려고합니다}] :
cosn="########"
baseurl="http://aaa.com/"
search="thing.do"
br=Browser()
br.open(baseurl+search)
br.select_form('traceForm')
br['consignments']=cosn
req=br.submit()
pars=Soup(req.read())
found_url=re.match(r"javascript:window.location.href = '(?P<url>[\w\d=&?\.]+)", pars.find('td', attrs={'class':'select'})['onclick']).group('url')
br.open(baseurl+found_url)
print br.title() # works
print br.geturl() # works
print br.read() # throws exception
해결책
당신은 결코 만들지 않습니다 첫 번째 .read
브라우저 인스턴스에서 방법 호출. 그러한 방법이 없기 때문입니다. 그만큼 Browswer.response
가지다 read
방법, 응답 본문을 얻으려면 다음을 수행해야합니다.
response = br.response()
response.read()
미래를 위해 사용할 수 있습니다 dir(obj)
객체의 내용을 볼 수 있습니다 obj
, 브라우저 또는 다른 것입니다.
제휴하지 않습니다 StackOverflow