小白学Python有问

查看 83|回复 5
作者:皮皮秀   

[color=]本人小白一个,最近ChatGPT写代码很火,本想借此工具来学习一下Python,奈何终归是小白,还是有很多问题搞不明白,特此向各位大佬请教:

我是想写个Python脚本,爬取一个网站的数据并导出Excel文件,ChatGPT给出答案是
[Python] 纯文本查看 复制代码import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'http://zbfdc.com.cn/html/Advance.html'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
table = soup.find('table', {'class': 'tab-data'})
rows = table.find_all('tr')
data = []
for row in rows:
    cells = row.find_all('td')
    data.append([cell.text.strip() for cell in cells])
df = pd.DataFrame(data[1:], columns=data[0])
df.to_excel('data.xlsx', index=False)
然后我改了一下
[Python] 纯文本查看 复制代码import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'http://zbfdc.com.cn/html/Advance.html'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
table = soup.find('table', {'class': 'saleWrapper'})
rows = table.find_all('ul')
data = []
for row in rows:
    cells = row.find_all('li')
    data.append([cell.text.strip() for cell in cells])
df = pd.DataFrame(data[1:], columns=data[0])
df.to_excel('data.xlsx', index=False)
但是并没有改对。

36行就是上面代码中的第十行,我自己前面做了些注释,所以成了36行了😂
小白一点基础都没有想上手还是很有难度的啊
问题出在哪里?应该是写哪几个元素?怎样改可以实现上面需求?希望各位大佬不吝赐教

大佬, 代码

yongbuchurou   

你这哪有第36行啊
diandian520   

把页码输出,检查出错的那个页面的数据,是不是没有你要找的ul,然后给他一个try,上万条数据,丢几个页面无所谓,或者就判断元素
ligxi   

看了一下,是个动态加载数据的网站,直接获取html网页是拿不到数据的
因此,table返回是个None值,None值自然就没有"find_all"方法啦
皮皮秀
OP
  


yongbuchurou 发表于 2023-2-14 22:42
你这哪有第36行啊

第10行,我前面做了些注释
皮皮秀
OP
  


ligxi 发表于 2023-2-14 22:50
看了一下,是个动态加载数据的网站,直接获取html网页是拿不到数据的
因此,table返回是个None值,None值 ...

那怎样能实现?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部