聚合数据API爬虫:Python

from db import run_sql
from config import start_urls
import urllib2
from bs4 import BeautifulSoup
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
f=open('result2.txt','w+')
sys.stdout=f
def get_type_list(url):
    object=urllib2.urlopen(url)
    soup=BeautifulSoup(object.read(),'html.parser')
    cache=soup.find_all('dl')[0]
    cache=cache.find_all('dd')[1:-1]
    result=[]
    for item in cache:
        item.span.extract()
        c=[]
        c.append(item.a.string)
        c.append(url[:-5]+item.a['href'])
        result.append(c)
    return result

def get_API_list(url):
    object=urllib2.urlopen(url)
    soup=BeautifulSoup(object.read(),'html.parser')
    cache=soup.find_all('div',class_='juheapis_desc clearfix')
    result=[]
    for item in cache:
        c=[]
        item.img.extract()
        r=item.select('a')[1]
        c.append(r.string)
        c.append(url[:url.find('/',8)]+r['href'])
        result.append(c)
    cache=soup.select('.juheapi_next')
    if cache:
        if cache[0].has_attr('href'):
            u=url[:url.find('/',8)]+cache[0]['href']
            cc=[]
            cc=get_API_list(u)
            result.extend(cc)
    return result

def get_API_list_childrens(url):
    object=urllib2.urlopen(url)
    soup=BeautifulSoup(object.read(),'html.parser')
    cache=soup.select('.das_left a')
    result=[]
    for item in cache:
        c=[]
        c.append(item.string[item.string.index('.')+1:])
        c.append(url[:url.find('/',8)]+item['href'])
        result.append(c)
    return result

def get_API_info(url):
    object=urllib2.urlopen(url)
    soup=BeautifulSoup(object.read(),'html.parser')
    cache=soup.select('.simpleline')
    cache=cache[:4]
    result=[]
    for item in cache:
        c=[]
        c.append(item.strong.string[:-1])
        c.append(item.span.string)
        result.append(c)
    return result


if __name__ == '__main__':
    for item in get_type_list(start_urls[0]):
        print item[0]
        urls=get_API_list(item[1])
        for item2 in urls:
            print '----',item2[0],item2[1]
            for item3 in get_API_list_childrens(item2[1]):
                print '---- ----',item3[0],item3[1]
                for item4 in get_API_info(item3[1]):
                    print '---- ---- ----',item4[0],item4[1]

配置文件:

start_urls=['https://www.juhe.cn/docs']

使用说明:
1.本程序可自动爬去聚合数据API,可根据需求自己定制
2.程序使用BeautifulSoup模块,在使用前需要安装 BeautifulSoup4

pip install bs4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值