码迷,mamicode.com
首页 > 编程语言 > 详细

python3实践-从网站获取数据(Carbon Market Data-GD) (bs4/Beautifulsoup)

时间:2017-01-17 07:42:46      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:html5   python3   应该   color   list   mkt   代码   from   rom   

 

结合个人需求,从某个网站获取一些数据,发现网页链接是隐藏的,需要通过浏览器看后面的代码来获取真实的链接。

下面这个案例,直接是从真实的链接中爬去数据。

此外,发现用pandas的read_html不能直接解析“lxml”的表格,有待后续研究。

 

另外,爬去的数据发现有很多空格符号,主要是 "\r"、"\n"、"\t",

字符串的去除 "\r"、"\n"、"\t" 的方法也一并添加在这个案例中。

具体代码如下:

 1 # Code based on Python 3.x
 2 # _*_ coding: utf-8 _*_
 3 # __Author: "LEMON"
 4 
 5 
 6 from bs4 import BeautifulSoup
 7 import requests
 8 import csv
 9 
10 url2 = http://ets.cnemission.com/carbon/portalIndex/markethistory?Top=1
11 
12 req = requests.get(url2)
13 # soup = BeautifulSoup(req.content, ‘html5lib‘)
14 soup = BeautifulSoup(req.content, lxml)
15 # 用“lxml”解析,可以获得数据,但csv文件中每行有空行
16 
17 table = soup.table
18 trs = table.find_all(tr)
19 
20 list1 = []
21 for tr in trs:
22     td = tr.find_all(td)
23 
24     # 去除每个单元格数据后面的"\r"和"\n"和"\t",
25     # 下面两种方法都可以生成csv文件,
26     # 但method1生成的csv文件较小,应该是优化性能较好,暂时不明白其中原理
27     # method1
28     row = [i.text.replace(\r, ‘‘).replace(\n, ‘‘).replace(\t, ‘‘) for i in td]
29     # method 2
30     # row = [i.text.replace(‘\r\n\t‘, ‘‘) for i in td]
31 
32     list1.append(row)
33 
34 with open(MktDataGuangdong.csv, a, errors=ignore, newline=‘‘) as f:
35     f_csv = csv.writer(f)
36     f_csv.writerows(list1)

 

python3实践-从网站获取数据(Carbon Market Data-GD) (bs4/Beautifulsoup)

标签:html5   python3   应该   color   list   mkt   代码   from   rom   

原文地址:http://www.cnblogs.com/lemonbit/p/6291489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!