小编Jus*_*guy的帖子

Python美丽的汤 - 通过Steam的年龄检查

我正在学习网络抓取,我一直在努力编写一个程序,从Steam的网站上提取信息作为练习.

我想编写一个程序,只访问每个前10名畅销游戏的页面并提取一些内容,但我的程序只是在尝试访问M级游戏时被重定向到年龄检查页面.

我的程序看起来像这样:

front_page = urlopen('http://store.steampowered.com/').read()
bs = BeautifulSoup(front_page, 'html.parser')
top_sellers = bs.select('#tab_topsellers_content a.tab_item_overlay')

for item in top_sellers:
    game_page = urlopen(item.get('href'))
    bs = BeautifulSoup(game_page.read(), 'html.parser')
    #Now I'm on the age check page :(
Run Code Online (Sandbox Code Playgroud)

我不知道如何通过年龄检查,我已经尝试通过发送POST请求来填写年龄检查,如下所示:

post_params = urlencode({'ageDay': '1', 'ageMonth': 'January', 'ageYear': '1988', 'snr': '1_agecheck_agecheck__age-gate'}).encode('utf-8')
page = urlopen(agecheckurl, post_params)
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我仍然在年龄检查页面.任何可以帮助我的人,我怎么能超越它?

python beautifulsoup web-scraping python-3.x python-3.5

2
推荐指数
1
解决办法
774
查看次数

Java - 保持重复插入顺序的PriorityQueue的替代方案

我有一个问题,我需要一个数据结构,让我按排序顺序存储一堆订单对象(有价格和数量),以便我可以轻松检索价格最低的那个.我需要的唯一操作是"插入"和"检索最小",这使得优先级队列看起来是一个很好的选择,但问题是我还需要跟踪重复项的插入顺序,以便它始终是第一个插入的副本首先检索.重复只是在这种情况下具有相同价格的订单.

Java PriorityQueue类似乎没有对重复项的检索顺序作出任何承诺,因此我需要一些其他选择.你们会推荐什么?

java priority-queue data-structures

2
推荐指数
1
解决办法
611
查看次数

Java - 为什么二进制堆的实现比另一个更快?

在阅读了一些关于堆/优先级队列之后,我最近自己实现了一个.之后我决定将我的实现性能与我在书中找到的性能进行比较,结果对我来说有点混乱.看起来两种实现的插入方法之间存在巨大的性能差异.

我用这段代码来测试两个堆:

Random rnd = new Random();
long startTime = System.currentTimeMillis();
for(int i = 0; i < 1_000_000_0; i++) heap.insert(rnd.nextInt(1000));
System.out.println(System.currentTimeMillis() - startTime);
Run Code Online (Sandbox Code Playgroud)

当我使用我的堆实现运行它时,我得到大约600ms的结果.当我用本书的实现来运行它时,我得到了大约1900ms.差异怎么可能这么大?当然,我的实施肯定有问题.

我的实施:

public class Heap<T extends Comparable<? super T>> {

    private T[] array = (T[])new Comparable[10];
    private int size = 0;

    public void insert(T data) {
        if(size+1 > array.length) expandArray();

        array[size++] = data;
        int pos = size-1;
        T temp;

        while(pos != 0 && array[pos].compareTo(array[pos/2]) < 0) {
            temp = array[pos/2];
            array[pos/2] = array[pos];
            array[pos] = temp;
            pos …
Run Code Online (Sandbox Code Playgroud)

java heap performance

1
推荐指数
1
解决办法
345
查看次数

Python - 为什么这个素数检查算法不起作用?

我有这个我编写的python代码:

from math import *

limit = 100000
primes = [2]

for i in range(3, limit+1, 2):
    is_prime = True
    for j in range(3, floor(sqrt(i)), 2):
        if i % j == 0:
            is_prime = False
            break
    if is_prime: primes.append(i)

print(len(primes))
Run Code Online (Sandbox Code Playgroud)

它说有9676个素数小于10万,当它应该是9592.如果我floor(sqrt(i))用公正替换它给出正确的答案i,但那时它非常慢.为什么我的算法不起作用?

python algorithm primes

0
推荐指数
1
解决办法
96
查看次数