如何在页面上随机选择一个link?
How to chose a random link on the page?
我正在使用漂亮的汤从页面中获取 links。
我希望它做的是 select 随机 link 之一,然后继续程序的其余部分。目前它正在使用所有 link 并继续执行程序的其余部分,但我只希望它选择 1 link.
程序的其余部分将查看 link 并确定它是否足以满足我的需求。如果不够好,它将返回并单击另一个 link。并重复这些过程。
知道如何让它做到这一点吗?
这是我当前用于查找 link 的代码。
import requests
import os.path
from bs4 import BeautifulSoup
import urllib.request
import hashlib
import random
max_page = 1
img_limit = 5
def pic_spider(max_pages):
page = random.randrange(0, max_page)
pid = page * 40
pic_good = 1
while pic_good == 1:
if page <= max_pages:
url = 'http://safebooru.org/index.php?page=post&s=list&tags=yuri&pid=' + str(pid)
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
id_list_location = os.path.join(id_save, "ids.txt")
first_link = soup.findAll('a', id=True, limit=img_limit)
for link in first_link:
href = "http://safebooru.org/" + link.get('href')
picture_id = link.get('id')
print("Page number = " + str(page + 1))
print("pid = " + str(pid))
print("Id = " + picture_id)
print(href)
if picture_id in open(id_list_location).read():
print("Already Downloaded or Picture checked to be too long")
else:
log_id(picture_id)
if ratio_get(href) >= 1.3:
print("Picture too long")
else:
#img_download_link(href, picture_id)
print("Ok download")
我不太确定我会怎么做,所以任何想法都会帮助我,如果您有任何问题,请随时提问!
我错过了什么吗?难道你只需要更换这个:
first_link = soup.findAll('a', id=True, limit=img_limit)
for link in first_link:
与:
from random import choice
first_link = soup.findAll('a', id=True, limit=img_limit)
link = choice(first_link)
这将 select 列表中的随机项目
我正在使用漂亮的汤从页面中获取 links。 我希望它做的是 select 随机 link 之一,然后继续程序的其余部分。目前它正在使用所有 link 并继续执行程序的其余部分,但我只希望它选择 1 link.
程序的其余部分将查看 link 并确定它是否足以满足我的需求。如果不够好,它将返回并单击另一个 link。并重复这些过程。
知道如何让它做到这一点吗?
这是我当前用于查找 link 的代码。
import requests
import os.path
from bs4 import BeautifulSoup
import urllib.request
import hashlib
import random
max_page = 1
img_limit = 5
def pic_spider(max_pages):
page = random.randrange(0, max_page)
pid = page * 40
pic_good = 1
while pic_good == 1:
if page <= max_pages:
url = 'http://safebooru.org/index.php?page=post&s=list&tags=yuri&pid=' + str(pid)
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
id_list_location = os.path.join(id_save, "ids.txt")
first_link = soup.findAll('a', id=True, limit=img_limit)
for link in first_link:
href = "http://safebooru.org/" + link.get('href')
picture_id = link.get('id')
print("Page number = " + str(page + 1))
print("pid = " + str(pid))
print("Id = " + picture_id)
print(href)
if picture_id in open(id_list_location).read():
print("Already Downloaded or Picture checked to be too long")
else:
log_id(picture_id)
if ratio_get(href) >= 1.3:
print("Picture too long")
else:
#img_download_link(href, picture_id)
print("Ok download")
我不太确定我会怎么做,所以任何想法都会帮助我,如果您有任何问题,请随时提问!
我错过了什么吗?难道你只需要更换这个:
first_link = soup.findAll('a', id=True, limit=img_limit)
for link in first_link:
与:
from random import choice
first_link = soup.findAll('a', id=True, limit=img_limit)
link = choice(first_link)
这将 select 列表中的随机项目