如何用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)

完整代码

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)

 

这个是爬取一个网址的表格的

url= 'http://yjj.henan.gov.cn/2020/12-30/2069739.html'


import pandas as pd
data = pd.DataFrame()
for table in pd.read_html(url):
    data = data.append(table)

如果要爬取多个网址的, 需要看表格是不是都一样, 如果都一样的, 爬虫获取链接,可再增加一个循环. 

这是我读取了所有的链接,并对所有的链接进行了请求,拿到了所有的表格,打印table如下