爬虫实例-----用requests框架和xpath爬取道琼斯指数信息并保存为csv文件

爬虫实例-----用requests框架和xpath爬取道琼斯指数信息并保存为csv文件

同类链接: 爬虫实例-----用scrapy框架和xpath爬取豆瓣多页面电影信息   里面有scrapy简略的介绍

import csv
import codecs
import requests
from lxml import etree

try:
    url = 'http://money.cnn.com/data/dow30'  # 要爬取的页面链接
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/'
                      '74.0.3729.169 Safari/537.36'    # 配置UA应对反爬
    }
    response = requests.get(url, headers=headers)    # 利用requests获取网页源码
    html = etree.HTML(response.text)    #etree.HTML():构造了一个XPath解析对象并对HTML文本进行自动修正。
    ls = html.xpath('//table[@class="wsod_dataTable wsod_dataTableBig"]//tr')   # 用xpath爬取页面table内所有信息目的是缩小范围,方便下面精确爬取信息
    print('len:', len(ls))    # 打印一下看是否成功获取信息,0 的话代表爬取失败
    file = codecs.open('./data/stock.csv', 'w', encoding='utf-8')   # 打开事先创建的csv文件并赋值给file
    if len(ls) > 0:
        ls.pop(0)   # 如果有信息删除第一行信息,因为第一行为名称,不需要
        wr = csv.writer(file)    # 将信息已csv的形式写入file中 即事先创建的stock.csv文件
        wr.writerow(['code', 'name', 'lasttrade'])   # 写入信息
        for stock in ls:
            code = stock.xpath("./td[1]/a/text()")[0]  # 从列表中提取第一项 text() 代表选取a标签内的文字信息
            name = stock.xpath("./td[1]/span/text()")[0]
            lasttrade = stock.xpath("./td[2]/span/text()")[0]

            print(code, name, lasttrade)
            wr.writerow([code, name, lasttrade])   # 写入信息

    file.close()  # 关闭文件

except Exception as e:
    print(e)

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值