bs4 python - 当图像是不同类时,我如何按顺序下载图像。询问bs4 python

时间:2017-12-22 21:14:40

标签: python web-scraping beautifulsoup

我想使用beautifulsoup4。我有一个类似于reddit的网页示例。首先,我在课堂上评定了图像     示例:5445 18365472910927456382001836547291092745638200183654729109274563820018365472910927456382001836547291092745638200183654729109274563820018365472910927456382001836547291092745638200183654729109274563820 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

我需要下载额定值超过1000的图像。 问题是包括图像的类是不同的(“标题可能空白出站”或“标题可能空白”)。 如果我使用def generate_all_numbers(length): l = list() for one in range(0,length): for two in range(0,length-one): for three in range(0,length-one-two): for four in range(0,length-one-two-three): for five in range(0,length-one-two-three-four): for six in range(0,length-one-two-three-four-five): for seven in range(0,length-one-two-three-four-five-six): for eight in range(0,length-one-two-three-four-five-six-seven): for nine in range(0,length-one-two-three-four-five-six-seven-eight): for ten in range(0,length-one-two-three-four-five-six-seven-eight-nine): if max(one,two,three,four,five,six,seven,eight,nine) > 0: num1 = "1"*one+"2"*two+"3"*three+"4"*four+"5"*five+"6"*six+"7"*seven+"8"*eight+"9"*nine num2 = "9"*one+"8"*two+"7"*three+"6"*four+"5"*five+"4"*six+"3"*seven+"2"*eight+"1"*nine+"0"*ten l.append(int(num1)) l.append(int(num2)) return(list(set(l))) def find_smallest_increasing(number, length): ehd = -1 num = "0" length += 1 for one in range(0,length): for two in range(0,length-one): for three in range(0,length-one-two): for four in range(0,length-one-two-three): for five in range(0,length-one-two-three-four): for six in range(0,length-one-two-three-four-five): for seven in range(0,length-one-two-three-four-five-six): for eight in range(0,length-one-two-three-four-five-six-seven): for nine in range(0,length-one-two-three-four-five-six-seven-eight): if max(one,two,three,four,five,six,seven,eight,nine) > 0: num = "1"*one+"2"*two+"3"*three+"4"*four+"5"*five+"6"*six+"7"*seven+"8"*eight+"9"*nine if int(num) % number == 0: if ehd == -1: ehd = int(num) if int(num) < ehd: ehd = int(num) return(ehd) def find_smallest_decreasing(number, length): ehd = -1 num = "0" length += 1 for one in range(0,length): for two in range(0,length-one): for three in range(0,length-one-two): for four in range(0,length-one-two-three): for five in range(0,length-one-two-three-four): for six in range(0,length-one-two-three-four-five): for seven in range(0,length-one-two-three-four-five-six): for eight in range(0,length-one-two-three-four-five-six-seven): for nine in range(0,length-one-two-three-four-five-six-seven-eight): for zero in range(0,length-one-two-three-four-five-six-seven-eight-nine): if max(one,two,three,four,five,six,seven,eight,nine) > 0: num = "9"*one+"8"*two+"7"*three+"6"*four+"5"*five+"4"*six+"3"*seven+"2"*eight+"1"*nine+"0"*zero if int(num) % number == 0: if ehd == -1: ehd = int(num) if int(num) < ehd: ehd = int(num) return(ehd) numbers = [363,726, 1313, 1452, 1717, 1798, 1815, 1919, 2121, 2156, 2189, 2541, 2626, 2805, 2904, 2997, 3131, 3297, 3434, 3630, 3838, 3993, 4037, 4092, 4107, 4191, 4242, 4257, 4312, 4334, 4343, 4378, 4407, 4532, 4646, 4719, 4747, 4807, 4949, 5011, 5055, 5071, 5082, 5151, 5214, 5353, 5423, 5454, 5495, 5610, 5665, 5731, 5808, 5819, 5858, 5951, 5989, 5994, 6171, 6248, 6281, 6429, 6446, 6468, 6523, 6565, 6567, 6594, 6721, 6767, 6868, 6897, 6919, 7051, 7077, 7128, 7139, 7171, 7227, 7260, 7381, 7424, 7474, 7513, 7678, 7831, 7858, 7878, 7881, 7909, 7986, 8041, 8063, 8074, 8088, 8107, 8129, 8162, 8173, 8184, 8195, 8214, 8283, 8316, 8349, 8382, 8415, 8453, 8484, 8514, 8624, 8649, 8756, 8778, 8814, 8932, 8987, 8989, 8990, 8991, 9053, 9064, 9075, 9099, 9101, 9119, 9141, 9156, 9191, 9213, 9251, 9292, 9309, 9328, 9361, 9393, 9438, 9493, 9515, 9546, 9595, 9597, 9603, 9614, 9667, 9678, 9757, 9797, 9802, 9834, 9890, 9898, 9909] hardnumbers = [1089, 2178, 3267, 4356, 5445, 6534, 7623, 8712, 9801] l = generate_all_numbers(20) A = list() for i in range(len(l)): for j in range(len(numbers)): if l[i] % numbers[j] == 0: A.append(l[i]) B = list() for j in range(len(numbers)): best = int("9" * 2000) for i in range(len(A)): if A[i] % numbers[j] == 0: if A[i] < best: best = A[i] print(str(numbers[j])+" "+str(best/numbers[j])+ " " + str(best)) for k in range(0,len(hardnumbers)): number = hardnumbers[k] a = -1 b = -1 i= 1 j= 1 while a == -1: if a % 5 != 0: a = find_smallest_increasing(number,i) i = i + 1 b = -1 j = 1 while b == -1: b = find_smallest_decreasing(number,max(i,j)) j = j + 1 print(str(number)+" "+str(min(a,b)/number)+" " + str(min(a,b))) 保存图像,则无法检查特定图像的比率。

感谢您的帮助

实施例

<div class="score likes" title="35">35</div>

0 个答案:

没有答案