Python爬虫实战(九):爬取动态网页

#coding=utf-8

import re
import json
import requests
from prettytable import PrettyTable

def getHtml(url):
    data = {
        'page':1,
        'num':40,
        'sort':'symbol',
        'asc':1,
        'node':'cyb',
        'symbol':'',
        '_s_r_a':'page'}
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'}
    
    try:    
        page = requests.post(url,data = data,headers = headers)  
        page.encoding = 'gbk'  
        html = page.text
        return html
    except:   
        return ""

def getdata(html):
    data = html.replace(':','":')
    data = data.replace(',',',"')
    data = data.replace('{','{"')
    data = data.replace('"{','{')
    data = re.sub('\d+":\d+":\d+','',data)
    data = json.loads(data)

    row = PrettyTable()
    row.field_names = ["代码", "名称", "最新价", "涨跌额","涨跌幅","买入","卖出","昨收","今开","最高"
                       ,"最低","成交量/手","成交额/万"]
    for item in data:
        row.add_row((item['symbol'],item['name'],item['trade'],item['pricechange'],item['changepercent']
              ,item['buy'],item['sell'],item['settlement'],item['open'],item['high']
              ,item['low'],item['volume'],item['amount']))
    print(row)
    


if __name__=='__main__':
    url = 'http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?'
    html = getHtml(url)
    getdata(html)





#coding=utf-8

import re
import json
import requests
from prettytable import PrettyTable

def getHtml(url):
     data = {
        'page.pageNo':2,
        'tempPageSize':40,
        }
     headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'} 
     page = requests.post(url,headers = headers,data = data)  
     html = page.text
     print (html)




if __name__=='__main__':
    url = 'http://datacenter.mep.gov.cn:8099/ths-report/report!list.action?xmlname=1465594312346'
    getHtml(url)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值