【问题标题】:How to create Page counter with shuffled links如何使用随机链接创建页面计数器
【发布时间】:2017-12-08 08:44:54
【问题描述】:

我想为随机链接创建页面倒计时,以便轻松了解我的脚本实际进展情况。

我试试:

def page_counter():
  for x in range(1000):
      yield x

count = page_counter()
driver = webdriver.Chrome()
driver.get('https://www.betstar.com.au/sports/soccer/')
elements = [x.get_attribute("href") for x in
driver.find_elements_by_css_selector(".market-group a")]
 shuffle(elements)
print(len(elements))

import operator

links = dict((next(count) + 1, e) for e in elements)
desc_links = sorted(links.items(), key=operator.itemgetter(1))

for link in desc_links:
    driver.get(link[1])
    print(f'At Page: {link[0]}')

当前输出(随机数):

   64
    At Page: 44
    At Page: 24
    At Page: 34
    At Page: 46
    At Page: 42
    At Page: 10

以上内容对于了解它的进展情况并不是很有用。 改为:

driver.get('https://stackoverflow.com/questions')

改为:

 driver.find_elements_by_css_selector("#questions .question-hyperlink")]

我得到(这也是我倒计时时的期望输出)

15
At Page: 15  #When at page 15
At Page: 14   #When at page 15
At Page: 13  #When at page 15
At Page: 12
At Page: 11
At Page: 10
At Page: 9

如何使用随机链接创建页面计数器?

我也尝试过让这个工作:

driver = webdriver.Chrome()


driver.get('https://www.betstar.com.au/sports/soccer/')
elements = driver.find_elements_by_css_selector(".market-group a")
elem_href1 = [element.get_attribute("href") for element in elements]
print(elem_href1)
print (len(elem_href1))
shuffle(elem_href1)
for link in elem_href1:#(2)
    driver.get(link)
    print(len(link))
    import numbers

    #number = number -= 1
    #print (len(elem_href1-(number)))



print (len(elem_href1)) gives total number of pages to navigate to.


print(len(link)) gives random number due to shuffle.

不支持,虽然链接被打乱了,但无法知道脚本是如何进行的

如何创建页面计数器以显示所需的输出。

【问题讨论】:

    标签: python python-3.x selenium selenium-webdriver


    【解决方案1】:

    试试这个

    替换

    links = dict((next(count) + 1, e) for e in elements)
    desc_links = sorted(links.items(), key=operator.itemgetter(1))
    
    for link in desc_links:
        driver.get(link[1])
        print(f'At Page: {link[0]}')
    

    import collections
    links = dict((next(count) + 1, e) for e in elements)
    
    desc_links = collections.OrderedDict(sorted(links.items(), reverse=True))
    
    for key, value in desc_links.items():
        driver.get(value)
        print('At Page: ' + str(key))
    

    【讨论】:

    • 知道在将网页点击为无 href 时我会怎么做吗?见:stackoverflow.com/questions/47901397/…
    • 你能详细说明一下吗?如果我没记错的话,您正在浏览足球部分,并尝试单击主列表下的列表。如果我的理解是正确的,那么您遇到的错误是什么。抱歉,我无法从问题中拼凑出问题
    • 我已经包含了我的确切错误。我还指定了我认为会导致确切问题的区域。你是对的,我正在尝试导航足球选择,但有一个页面计数器。在上面的示例中,href 非常适用,但没有 href 时会出现问题
    • 我认为:elements = [x.get_text() for x 或我尝试过的其他变体不正确,这会导致问题。
    猜你喜欢
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多