python
  • beautifulsoup
  • urllib2
  • mechanize
  • 2012-12-03 1 views 0 likes 
    0

    학습 도구 : 뉴스 사이트를 통해 크롤링하고 싶습니다. 링크에 ?sid이있는 링크 만 따라 가십시오. 기계 문서에서 많은 부분을 찾을 수없는 것 같습니다. .기계화 : URL에있는 특정 요소가있는 링크 만 따라 가기

    import mechanize 
    br = mechanize.Browser() 
    response = br.open("http://www.ksl.com") 
    target_url = 'http://www.ksl.com/?sid=23201788&nid=711&title=vampire-on-the-loose-in-serbia' 
    
    for link in br.links(): 
        print link.text, link.lurl 
    

    지금까지까지도 마찬가지입니다. 나는 Mechanize가 KSL의 메인 페이지로 가서 각 링크를 열어 URL에 ?sid을 넣은 다음 그 URL 내에서 대상 URL을 검색합니다. 그런 다음 다시 돌아가서 페이지의 다른 링크를 계속 검색하십시오. 첫 페이지 끝 부분에는 맨 아래쪽에있는 "페이지 번호"가 있습니다. 그래서 더 많은 링크를 스캔하려면 '다음 페이지'로 전환해야합니다. 이야기에는 목표 URL이 있습니다.

    답변

    2

    체크 아웃 urlparse

    >>> from urlparse import urlparse 
    >>> target_url = 'http://www.ksl.com/?sid=23201788&nid=711&title=vampire-on-the-loose-in-serbia' 
    >>> parsed_url = urlparse(target_url) 
    >>> parsed_url 
    ParseResult(scheme='http', netloc='www.ksl.com', path='/', params='', query='sid=23201788&nid=711&title=vampire-on-the-loose-in-serbia', fragment='') 
    >>> if 'sid=' in parsed_url.query: 
    ...  do_something() 
    
    관련 문제