楼主: Solokovski
1897 2

[问答] 求一个Python3 Beautiful Soup4的取网页表格存csv的例子 [推广有奖]

  • 0关注
  • 0粉丝

小学生

78%

还不是VIP/贵宾

-

威望
0
论坛币
20 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
72 点
帖子
7
精华
0
在线时间
5 小时
注册时间
2010-4-11
最后登录
2017-7-22

楼主
Solokovski 发表于 2017-7-13 17:01:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题,求一个例子,本人小白,不要太复杂,怕看不懂
我看到有一本叫 python网络数据采集 的书,无奈书上的代码都是2.X的,不兼容3.X,我自己也试图写了一些,写不下去了。求大神帮助。
比如,下面代码的那个网页,我想把那个”分红配股“的表格数据下载到CSV。
写了一点
import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup
#比如下面这个网址
html = urlopen("http://quotes.money.163.com/f10/fhpg_600048.html#01d05")
bsObj = BeautifulSoup(html, "html.parser")

#要的数据都在下面这个标签页里
rows = bsObj.findAll("tr", {"class":{"","dbrow"}})

粗粗理解标签<tr>是不是就是换行呢。。。然后里面还有个子标签<td><th>用来区分每个字符串。

我看到书上有下面这段写csv的,但是我不会改成3.x的,求大神帮助一下。
csvFile = open("test.csv", 'wt', newline='', encoding='utf-8')
writer = csv.writer(csvFile)
try:
for row in rows:
csvRow = []
for cell in row.findAll(['td', 'th']):
csvRow.append(cell.get_text())
writer.writerow(csvRow)
finally:
csvFile.close()
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
fengxingliulizi 发表于 2017-7-14 09:38:13
上面的那段保存的csv代码没毛病,py3可以运行,可能是代码排列或csv地址写的有些小瑕疵。下面是可运行的代码。

  1. csvpath = r'd:\test.csv'
  2. csvFile = open(csvpath, 'wt', newline='', encoding='utf-8')
  3. writer = csv.writer(csvFile)
  4. try:
  5.     for row in rows:
  6.         csvRow = []
  7.         for cell in row.findAll(['td', 'th']):
  8.             csvRow.append(cell.get_text())
  9.         writer.writerow(csvRow)
  10. finally:
  11.     csvFile.close()
复制代码


藤椅
Solokovski 发表于 2017-7-15 09:09:27
fengxingliulizi 发表于 2017-7-14 09:38
上面的那段保存的csv代码没毛病,py3可以运行,可能是代码排列或csv地址写的有些小瑕疵。下面是可运行的代码 ...
非常非常感谢!!!问题解决

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-13 15:13