加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

聚合数据API爬虫:Python

发布时间:2020-12-14 02:16:52 所属栏目:百科 来源:网络整理
导读:from db import run_sql from config import start_urls import urllib2 from bs4 import BeautifulSoup import sysreload(sys)sys.setdefaultencoding( 'utf-8' )f=open( 'result2.txt' , 'w+' )sys.stdout=f def get_type_list (url) : object=urllib2.url
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读