Зацикливание URL-адресов для парсинга на BeautifulSoup - PullRequest
0 голосов
/ 03 августа 2020

Мой сценарий в настоящее время просматривает список из 5 URL-адресов, когда он достигает конца списка, он прекращает очистку. Я хочу, чтобы он l oop вернулся к первому URL-адресу после завершения последнего URL-адреса. Как мне этого добиться?

Я хочу, чтобы это было oop, чтобы отслеживать любые изменения в продукте, такие как цена и т.д. c.

Я пытался посмотреть несколько методов, которые я нашел в Интернете, но не мог понять, поскольку я новичок в этом. Надеюсь, ты сможешь помочь!

import requests
import lxml.html
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
from dhooks import Webhook, Embed
import random

ua = UserAgent()
header = {'User-Agent':ua.chrome}

# Proxies
proxy_list = []

for line in open('proxies.txt', 'r'):
    line = line.replace('\n', '')
    proxy_list.append(line)

def get_proxy():
    proxy = random.choice(proxy_list)
    proxies = {
        "http": f'{str(proxy)}',
        "https": f'{str(proxy)}'
    }
    return proxies

# Opening URL file 
with open('urls.txt','r') as file:
    for url in file.readlines():
        proxies = get_proxy()
        result = requests.get(url.strip() ,headers=header,timeout=4,proxies=proxies)
        #src = result.content
        soup = BeautifulSoup(result.content, 'lxml')
        

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Вы можете сохранить URL-адреса в списке и сделать над ним некоторое время l oop, базовое c logi c будет

with open('urls.txt','r') as file:
    url_list = file.readlines()
pos = 0
while True:
    if pos >= len(url_list):
        pos = 0
    url = url_list[pos]
    pos += 1
    *** rest of your logic ***
0 голосов
/ 03 августа 2020

Вы можете добавить while True: l oop снаружи и над основным оператором with & для l oop (и добавить один уровень отступа к каждой строке внутри). Таким образом, программа будет работать до тех пор, пока не будет остановлена ​​пользователем.

...