| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1459 人关注过本帖
标题:惭愧 获取动态网页数据,遇到了401错误。
取消只看楼主 加入收藏
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
结帖率:79.17%
收藏
已结贴  问题点数:20 回复次数:5 
惭愧 获取动态网页数据,遇到了401错误。
URL:
http://dcfm.(x)%2C%22pages%22%3A(tp)%2C%22font%22%3A(font)%7D&filter=(DateType%3D%271%27)(HdDate%3D%272021-08-13%27)

内容是东方财富网上的北上资金持股,不会设置jquery和 token 参数。

代码:
import requests
import random
headers=[{"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400'},{"User-Agent":'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36'}]
url = "http://dcfm.
params = {'st': 'ShareSZ_Chg_One', 'sr': -1, 'ps': 50, 'p': 1, 'type': 'HSGT20_GGTJ_SUM'}
response = requests.get(url = url, params = params,headers = random.choice(headers))
结果:
<Response [401]>
response.reason:'Unauthorized'
搜索更多相关主题的帖子: response get js URL 获取 
2021-08-15 08:21
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
网址:
http://data.
页面:
图片附件: 游客没有浏览图片的权限,请 登录注册
2021-08-15 08:45
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
我说的参数就是那个URL中的callback,st,token等等,可能是动态设置的。
2021-08-15 10:04
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
更详细的网址是: http://data.
正在尝试笨办法selenium......
2021-08-15 15:35
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
用selenium解决了,不过还是希望有更好的办法。
2021-08-17 19:08
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
我是VFP的老菜鸟,遇到问题总喜欢在这里寻求帮助,主要是因为这里人气旺,一般都有人解答。
下面是python+selenium+IE的解决办法:

from selenium import webdriver
#from selenium.webdriver.support.ui import Select
import time
import sys
import re
import random
from decimal import Decimal
import os
import json
import logging
import datetime
logging.basicConfig(filename='rizhi.txt', level = logging.INFO, format = '%(asctime)s: %(levelname)s:%(message)s')

"""沪深股通获得北上(陆股通)持股列表"""
def getdata():
    gp_dict = {}
    ie = webdriver.Ie()
    ie.implicitly_wait(10)
    ie.set_window_position(-900,10)
    ie.get("http://data.)#东方财富网北上持股
    if not ie.find_element_by_id("dataview_bkcgmx"):
        raise RuntimeError("目标网页没有打开!")

    zong_ye_shu = eval(ie.find_element_by_class_name("pagerbox").find_element_by_xpath(".//a[@target='_self'][last()-1]").get_attribute("innerText"))
    pages = list(range(1,zong_ye_shu + 1))
    random.shuffle(pages)
    while pages:
        ie.find_element_by_id("gotopageindex").clear()
        time.sleep(random.randint(8,18)/10)
        ie.find_element_by_id("gotopageindex").send_keys(pages.pop())
        time.sleep(random.randint(8,18)/10)
        ie.find_element_by_class_name("gotopage").find_element_by_class_name("btn").click()
        time.sleep(random.randint(8,18)/10)

        tr_list = ie.find_element_by_id("dataview_bkcgmx").find_element_by_xpath(".//tbody").find_elements_by_xpath(".//tr")
        
        while tr_list:
            trx = tr_list.pop()
            daima = re.findall("\d{6,10}",trx.get_attribute("innerText"))[0][-6:]
            bili = trx.find_element_by_xpath(".//td[10]").get_attribute("innerText")
            bili = Decimal(re.match("\d{1,2}\.\d\d",bili).group())
            gp_dict[daima] = bili
    ie.quit()
    print(len(gp_dict))
    return gp_dict
2021-08-18 20:25
快速回复:惭愧 获取动态网页数据,遇到了401错误。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017298 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved