yahoo spider

还是一句话 直接上代码

  • 用于查找a标签里的href的值,再访问这个值,得到文章的内容,果然是要DB的公司,网站都是同步加载的,没有用到js的那么复杂,cnn,bbc都是 ,bbc还被墙掉了。。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    # -*- coding: utf-8 -*-
    ##版本:1.0
    ##环境:python2.7
    ##作者:alience
    ##日期:2014.11.15
    ##说明:文件生成目录为:D:/qsbk

    import urllib2
    import urllib
    import re
    import thread
    import time
    import os
    import sys
    import datetime
    from bs4 import BeautifulSoup


    #----------- 程序的入口处 -----------
    print u"""
    ---------------------------------------
    程序:cnn爬虫
    版本:0.3
    作者:alience
    日期:2014-11-18
    语言:Python 2.7
    ---------------------------------------
    """

    myUrl = "https://news.search.yahoo.com/search;_ylt=AwrSyCQlQ2xUITMAXnHQtDMD?p=visit&fr=yfp-t-703&fr2=piv-web&xargs=0&pstart=1&b="+'1'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers = { 'User-Agent' : user_agent }
    req = urllib2.Request(myUrl, headers = headers)
    myResponse = urllib2.urlopen(req).read()
    soup = BeautifulSoup(myResponse)

    #ser_results=soup.find_all(attrs={"class":"cnnResultsList"})
    #ser_results=soup.find_all('div',class_='cnn_shdbox')
    ser_results=soup.find(attrs={"id":"web"})
    # only one ser_results=soup.find_all("ul")
    #ser_results=soup.find(class_=' cnnResultsList ')
    #ul_tag = soup.find('ul', {'class': 'cnnResultsList'})
    ol_ser_results=ser_results.find('ol')
    a_tag=ol_ser_results.find_all('a')
    print '------------'
    i=0
    for a in a_tag:
    print i
    print a.get('href')
    print '---------'
    i=i+1
    print '------------'


    #atag=ser_results.find_all('li')


    #print results.find_all('li',class_="cnnResultTitle cnnResultTitleTopic")
    #i=i+1
    #i=0
    #for pic in texts:

    #print '---'+str(i)

    #pic_t= pic.get_text()

    #print pic_t.replace("\n","")
    #p_link=p_img.get('href')
    #print p_link
    #i=i+1

    #myPage = myResponse.read()
    #encode的作用是将unicode编码转换成其他编码的字符串
    #decode的作用是将其他编码的字符串转换成unicode编码
    #unicodePage = myPage.decode("utf-8")