Web scraping 当我找到值时,如何停止web抓取数据?

Web scraping 当我找到值时,如何停止web抓取数据?,web-scraping,beautifulsoup,append,findall,Web Scraping,Beautifulsoup,Append,Findall,我已经得到了这段代码,我可以用Python 2.7在网站上搜索名为“ctable”的all表。但我想阻止它,当它到达这个值为XXXX的“ctable”的值时。我需要直到这个值XXXX。所以,如果它找到了这篇文章,我想停止在这些表格上乱涂乱画 可能吗 这是我的代码: soup=BeautifulSoup(x,'lxml') 数据表=[] 对于汤中的ctable.find_all('table','ctable')[:-1]: 对于ctable.find_all('tr')中的记录: 临时数据=[

我已经得到了这段代码,我可以用Python 2.7在网站上搜索名为“ctable”的all表。但我想阻止它,当它到达这个值为XXXX的“ctable”的值时。我需要直到这个值XXXX。所以,如果它找到了这篇文章,我想停止在这些表格上乱涂乱画

可能吗

这是我的代码:

soup=BeautifulSoup(x,'lxml')
数据表=[]
对于汤中的ctable.find_all('table','ctable')[:-1]:
对于ctable.find_all('tr')中的记录:
临时数据=[]
对于记录中的数据。查找所有('td'):
temp_data.append(data.text.encode('latin-1'))

datatable.append(temp_data)
在代码中实现一个
break
操作符:

    ...
    (your code above)
datatable=[]
stop = 0
for ctable in soup.find_all('table',  "ctable" )[:-1]:
    if stop == 1:
        break
    for record in ctable.find_all('tr'):
        if stop == 1:
            break
        temp_data = []
        for data in record.find_all('td'):
            temp_data.append(data.text.encode('latin-1'))
            if 'modul' in data.text:
                stop = 1
                break         
        datatable.append(temp_data)
我没有注意到你有一个三重
for
循环。也许现在可以了

我在每个循环中添加了
break

备选方案
如果
中断

datatable=[]
stop = 0
for ctable in soup.find_all('table',  "ctable" )[:-1]:
    for record in ctable.find_all('tr'):
        temp_data = []
        for data in record.find_all('td'):
            temp_data.append(data.text.encode('latin-1'))
            if 'modul' in data.text:
                stop = 1
                break         
        datatable.append(temp_data)
        if stop == 1:
            break
    if stop == 1:
        break

在代码中执行
break
运算符:

    ...
    (your code above)
datatable=[]
stop = 0
for ctable in soup.find_all('table',  "ctable" )[:-1]:
    if stop == 1:
        break
    for record in ctable.find_all('tr'):
        if stop == 1:
            break
        temp_data = []
        for data in record.find_all('td'):
            temp_data.append(data.text.encode('latin-1'))
            if 'modul' in data.text:
                stop = 1
                break         
        datatable.append(temp_data)
我没有注意到你有一个三重
for
循环。也许现在可以了

我在每个循环中添加了
break

备选方案
如果
中断

datatable=[]
stop = 0
for ctable in soup.find_all('table',  "ctable" )[:-1]:
    for record in ctable.find_all('tr'):
        temp_data = []
        for data in record.find_all('td'):
            temp_data.append(data.text.encode('latin-1'))
            if 'modul' in data.text:
                stop = 1
                break         
        datatable.append(temp_data)
        if stop == 1:
            break
    if stop == 1:
        break


请给出你从哪里抓取数据的真实链接,因为我可以在我的PCCan上查看我们去私人网站?是的,我们去吧,但我不知道如何切换到聊天=)啊,我还没有任何权利打开私人聊天室:s我不能给你发送此链接,因为这是从登录网站上发送的,使用captcha安全性..所以我决定将这个html源代码下载到一个txt文件中,在python中阅读后,我可以在其中查找这些表。这个break操作符你给我的建议是,这不起作用,因为我在这个break命令之前丢失了所有datatable!请给出你从哪里抓取数据的真实链接,因为我可以在我的PCCan上查看我们去私人网站?是的,我们去吧,但我不知道如何切换到聊天=)啊,我还没有任何权利打开私人聊天室:s我不能给你发送此链接,因为这是从登录网站上发送的,使用captcha安全性..所以我决定将这个html源代码下载到一个txt文件中,在python中阅读后,我可以在其中查找这些表。这个break操作符你给我的建议是,这不起作用,因为我在这个break命令之前丢失了所有datatable!这在我的代码中并不重要:[:-1]它不起作用,你的代码中有一些语法错误。你能复制到这里吗?是的,这是我的错误=)在
if
语句中应该是双“=”。修正好了,我在顶部定义了它-
stop=0
。你定义它了吗?=)它是工作的,但这不是我要找的:(我需要在这个break命令之前的数据。用这个代码我会丢失这些数据。这在我的代码中并不重要:[:-1]它不工作,你的代码中有一些语法错误。你可以复制它吗?是的,这是我的错误=)应该是双“=”在
if
语句中。修正好了,我在顶部定义了它-
stop=0
。你定义它了吗?=)它是工作,但这不是我要找的:(我需要在这个break命令之前的数据。用这个代码我会丢失这些数据。o.o