淋97 2021-03-18 16:10 采纳率: 100%
浏览 158
已采纳

如何用pandas爬取一个页面上多个链接里的表格(不是分页)?

网址:http://yjj.henan.gov.cn/zwgk/zqyj/

我目前只会爬里面任意一个面的表格,不会一起循环拿下

爬取这里面的每一个HTML表格

请大神帮助,本人纯属小白

以下是写的第一个链接里面的HTML表格

本来想用XPATH获取,实在不会只好放弃

import requests
from lxml import etree
import pandas as pd
import csv
import os
if __name__ == "__main__":
    
    #河南药监局
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'
    }
    url="http://yjj.henan.gov.cn/2020/12-30/2069739.html"
 
    response = requests.get(url=url,headers=headers)
    response.encoding='utf-8'
    page_text=response.text
    tree = etree.HTML(page_text)
    #print( page_text)
df = pd.read_html(page_text, encoding='utf-8', header=0)[0]
df_all.shape
df
df.to_csv('河南省药品监督管理局关于15批次抽检不合格药品的通告(2020年第4期).csv', encoding='utf-8', index=False)

  • 写回答

5条回答 默认 最新

  • 关注

    完整代码

    import requests
    from bs4 import BeautifulSoup
    import time
    import pandas as pd
    import numpy as np
    
    # 请求头
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }
    
    url = 'http://yjj.henan.gov.cn/zwgk/zqyj/yp/'
    
    
    # 获取html
    html = requests.get(url,headers=headers)
    # 统一编码
    #html.encoding =html.apparent_encoding
    data = html.text
    # 转换成soup
    soup = BeautifulSoup(data,'lxml')
    
    # 链接
    lianjie = soup.select('body > div.zwxxgk_bd > div.zwxxgk_box > div.scroll_main1 > div.zfxxgk_zdgkc > ul > li > a')
    # 获取连接列表
    lis =[]
    for i in lianjie:
        lis.append(i['href'])
        
    # 汇总数据
    data = pd.DataFrame()
    for urli in lis:
        for table in pd.read_html(urli):
            data = data.append(table)
        time.sleep(2)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛