鱼C论坛

 找回密码
 立即注册
查看: 1988|回复: 3

[已解决]为什么我只爬到第一行表头,如何才能爬到所有国家的呢?

[复制链接]
发表于 2021-1-13 11:25:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#爬取世界各国疫情数据
import urllib.request as request
import io

def download(url:str):
    response = request.urlopen(url)
    textIOWrapper = io.TextIOWrapper(buffer=response,encoding="UTF-8")
    html=textIOWrapper.read()
    return html
url = "https://wp.m.163.com/163/page/news/virus_report/index.html?_nw_=1&_anw_=1"
html=download(url=url)

from bs4 import BeautifulSoup
FIELDS = ('name', 'today_confirm','confirm','dead','heal')# 定义要抓取的各列的标识
def bs_scraper(html):
    # parse the HTML
    soup = BeautifulSoup(html, features='html.parser')
    body = soup.find(name='body')
    results = {}
    div_1 = body.find_all(name='div', attrs={'class': 'overseas_list_nation'})
    print(div_1)
    for div in div_1:
        for field in FIELDS:
            div_2 = div.find(name='div', attrs={'class': 'overseas_list_%s' % field})
            results[field] = div_2.text
    print(results)
    return results

bs_scraper(html)
最佳答案
2021-1-13 17:07:34
接着上面大佬给的 api,里面再每个国家/地区后头都会有一个 id 号

这里找到了另外一个 api,可以获取指定国家/地区每一天的数据(包含历史数据)

https://c.m.163.com/ug/api/wuhan ... ea-code?areaCode=10

只需要把areaCode=后面的数字改成对应国家/地区的id就可以了。例如:中国的id为 0 那么 对应的 url 为 https://c.m.163.com/ug/api/wuhan ... rea-code?areaCode=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-13 15:59:27 | 显示全部楼层
网页源代码没有数据,都是js动态加载的,你这样怎么可能爬的到?
疫情数据去爬这个接口:https://c.m.163.com/ug/api/wuhan/app/data/list-total?t=322104795402
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-13 16:40:22 | 显示全部楼层
YunGuo 发表于 2021-1-13 15:59
网页源代码没有数据,都是js动态加载的,你这样怎么可能爬的到?
疫情数据去爬这个接口:https://c.m.163. ...

大佬,我想问一下,你是如何获得到这个api的呢?求教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-13 17:07:34 | 显示全部楼层    本楼为最佳答案   
接着上面大佬给的 api,里面再每个国家/地区后头都会有一个 id 号

这里找到了另外一个 api,可以获取指定国家/地区每一天的数据(包含历史数据)

https://c.m.163.com/ug/api/wuhan ... ea-code?areaCode=10

只需要把areaCode=后面的数字改成对应国家/地区的id就可以了。例如:中国的id为 0 那么 对应的 url 为 https://c.m.163.com/ug/api/wuhan ... rea-code?areaCode=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 17:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表