前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 爬虫方式获取数据

python 爬虫方式获取数据

作者头像
多凡
发布2019-11-01 09:18:31
5220
发布2019-11-01 09:18:31
举报
文章被收录于专栏:sringbootsringboot

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_44580977/article/details/102056198

urllib.request模块
代码语言:javascript
复制
from urllin import request
resp = request.urlopen("http://image.baidu.com/")
print(resp.read().decode())

<!DOCTYPE html>              <!--STATUS OK-->  <head>   <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <meta name="description" content="百度图片使用世界前沿的人工智能技术,为用户甄选海量的高清美图,用更流畅、更快捷、更精准的搜索体验,带你去发现多彩的世界。"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta name="baidu-site-verification" content="2ltGWMzql9"/>  <script>
    var bdimgdata = {
        logid: '11007013867272265913',
        sid: 'dc1c38881068b98784a4a5fc83d5a92f6b2743ee',
        wh: window.screen.width + 'x' + window.screen.height,
        sampid: '-1',
        protocol: window.location.protocol.replace(':', ''),
        spat: 0 + '-' + ''
    }
......   

获取内容要用read()方法,因为内容是二进制要解码decode()成字符串

urllib3 库

推荐使用的urllib3库

代码语言:javascript
复制
import urllib3
http = urllib3.PoolManager();
resp_dat = http.request('GET', "http://image.baidu.com/")
print(resp_dat.data.decode())
实战例程

爬取东方财富网股票信息

代码语言:javascript
复制
#访问行业板块数据
http = urllib3.PoolManager();

pages = 4
conts = []
for p in range(1,pages+1):
    url = "http://nufm.dfcfw.com/EM_Finance2014NumericApplication/JS.aspx?cb=jQuery1124012582582823807198_1554554782636&type=CT&token=4f1862fc3b5e77c150a2b985b12db0fd&sty=FPGBKI&js=({data:[(x)],recordsFiltered:(tot)})&cmd=C._BKHY&st=(ChangePercent)&sr=-1&p=%d"%p
    url += "&ps=20&_=1554554783027"
    try:
        resp_dat = http.request('GET', url)
        pattern = re.compile(r'BK(.*?)"')
        bk_list = re.findall(pattern,resp_dat.data.decode())
        for bk in bk_list:
            conts.append(bk)
        print(resp_dat.data.decode())
    except Exception as e:
        print(resp_dat.status)
        print(e)

print(conts)
#截取部分内容

df = pd.DataFrame(np.zeros((len(conts), 7)), columns=[u'板块名称', u'BK涨跌幅', u'总市值', u'换手率', u'涨跌家数', u'领涨股票', u'SK涨跌幅'])

for num, bk_dat in enumerate(conts) :
    bk_dat = bk_dat.split(',')
    df.loc[df.index[num], u'板块名称'] = bk_dat[1]
    df.loc[df.index[num], u'BK涨跌幅'] = bk_dat[2]
    df.loc[df.index[num], u'总市值'] = bk_dat[3]
    df.loc[df.index[num], u'换手率'] = bk_dat[4]
    df.loc[df.index[num], u'涨跌家数'] = bk_dat[5]
    df.loc[df.index[num], u'领涨股票'] = bk_dat[8]
    df.loc[df.index[num], u'SK涨跌幅'] = bk_dat[10]
    
df.to_csv("table-bk.csv", columns=df.columns, index=True, encoding='gb2312')
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • urllib.request模块
  • urllib3 库
  • 实战例程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档