#coding=utf-8
import sys
import requests
reload(sys)
sys.setdefaultencoding('utf-8')
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36',
'Accept-Language':'zh-CN,zh;q=0.8',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Referer':'http://www.itaotm.com/search.php?seat=%E7%94%B3%E8%AF%B7%E4%BA%BA&searchKey=%E5%8C%97%E4%BA%AC',
'Upgrade-Insecure-Requests':'1'}
session=requests.session()
def get_detailpage():
url='http://www.itaotm.com/search!page.php?pageNo=1&l=20161019113636&gjfls=1%3B2%3B3%3B4%3B5%3B6%3B7%3B8%3B9%3B10%3B11%3B12%3B13%3B14%3B15%3B16%3B17%3B18%3B19%3B20%3B21%3B22%3B23%3B24%3B25%3B26%3B27%3B28%3B29%3B30%3B31%3B32%3B33%3B34&gjfl=0&seat=%E7%94%B3%E8%AF%B7%E4%BA%BA&searchKey=%E5%8C%97%E4%BA%AC'
data={'pageNo':'1','l':'20161019113636','gjfls':'1%3B2%3B3%3B4%3B5%3B6%3B7%3B8%3B9%3B10%3B11%3B12%3B13%3B14%3B15%3B16%3B17%3B18%3B19%3B20%3B21%3B22%3B23%3B24%3B25%3B26%3B27%3B28%3B29%3B30%3B31%3B32%3B33%3B34',
'gjfl':'0','seat':'%E7%94%B3%E8%AF%B7%E4%BA%BA','searchKey':'%E5%8C%97%E4%BA%AC'}
html=session.get(url=url,headers=headers,params=data)
print html.text
get_detailpage()
在填好搜索条件后,点击查询,页面上会显示要几秒后才能出结果,然后直接出现结果的页面。
爬取的网址是最后出现结果的网址,但爬取到的内容会出现:
<p class="cls"></p>
<p class="mainBox">
<p class="jump">
数据量巨大,正在努力查询中.... 预计<span id="jumpTo">5</span>秒后出结果
</p>
<p class="cls"></p>
</p>
并不是想要的最终结果,怎么才能爬取到正确结果呢?不用selenium的话
패킷 캡처 및 분석만
쉽게, 최종 데이터가 어떻게 얻어지는지 브라우저 개발 도구의 네트워크 연결 데이터를 살펴보세요~
패킷을 캡쳐해 보면 해당 URL이 실제로 두 번 방문한 것을 알 수 있는데, 처음 반환된 웹페이지에 점프하기 위한 js 코드가 있는 것으로 추측됩니다
phatomjs 사용