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


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

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

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

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

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

    具体代码如下:

     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     # 去除每个单元格数据后面的"
    "和"
    "和"	",
    25     # 下面两种方法都可以生成csv文件,
    26     # 但method1生成的csv文件较小,应该是优化性能较好,暂时不明白其中原理
    27     # method1
    28     row = [i.text.replace('
    ', '').replace('
    ', '').replace('	', '') for i in td]
    29     # method 2
    30     # row = [i.text.replace('
    	', '') 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)
  • 相关阅读:
    自定义Web框架
    Python四种实现单例模式的方法
    popup的简单应用举例
    前端框架之BootStrap的简单介绍
    前端之JQuery:JQuery扩展和事件
    前端之JQuery:JQuery文档操作
    前端之JQuery:JQuery属性操作
    前端之JQuery:JQuery基本语法
    MinerDB.java 数据库工具类
    MinerConstanits.java 常量类
  • 原文地址:https://www.cnblogs.com/lemonbit/p/6291489.html
Copyright © 2020-2023  润新知