Python 在BeautifulSoup上循环用于抓取的URL

Python 在BeautifulSoup上循环用于抓取的URL,python,beautifulsoup,Python,Beautifulsoup,我的脚本当前查看一个包含5个URL的列表,一旦到达列表的末尾,它就会停止抓取。我希望它在完成最后一个URL后返回到第一个URL。我将如何实现这一点 我希望它循环的原因是监视产品的任何变化,如价格等 我试着在网上找到了一些方法,但由于我是新手,所以没能找到。希望你能帮忙 import requests import lxml.html from bs4 import BeautifulSoup from fake_useragent import UserAgent from dhooks imp

我的脚本当前查看一个包含5个URL的列表,一旦到达列表的末尾,它就会停止抓取。我希望它在完成最后一个URL后返回到第一个URL。我将如何实现这一点

我希望它循环的原因是监视产品的任何变化,如价格等

我试着在网上找到了一些方法,但由于我是新手,所以没能找到。希望你能帮忙

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')
        

您可以添加一个
,而True:
循环在main with语句和for循环的外部和上方(并向内部的每一行添加一级缩进)。这样,程序将一直运行,直到被用户终止。

您可以将URL存储在一个列表中并在其上执行while循环,基本逻辑如下

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 ***

刚刚尝试了这个,当它到达最后一个项目-
Traceback(最近一次调用last):文件“C:\Users\Luke\Documents\Python Course\ebgames\bsoup.py”,第48行,在url=url\u list[pos]indexer中:列表索引超出范围