Python For循环和If语句在web抓取中未正确循环
这应该是刮给定的网站,直到链接被上传到网站,然后给我发电子邮件的信息,这一切都很好,如果我在网站上已经输入了链接的关键字,但如果我给的关键字不在网站上,一个随机链接是电子邮件给我。我如何循环这个脚本,直到找到带有给定3个关键字的链接,然后继续脚本的其余部分。。请以任何你能想到的方式循环这个!(我省略了电子邮件信息)Python For循环和If语句在web抓取中未正确循环,python,for-loop,web-scraping,beautifulsoup,lxml,Python,For Loop,Web Scraping,Beautifulsoup,Lxml,这应该是刮给定的网站,直到链接被上传到网站,然后给我发电子邮件的信息,这一切都很好,如果我在网站上已经输入了链接的关键字,但如果我给的关键字不在网站上,一个随机链接是电子邮件给我。我如何循环这个脚本,直到找到带有给定3个关键字的链接,然后继续脚本的其余部分。。请以任何你能想到的方式循环这个!(我省略了电子邮件信息) 在这里。我更改了它,使代码更清晰。我认为应该行得通 from bs4 import BeautifulSoup import requests import smtplib from
在这里。我更改了它,使代码更清晰。我认为应该行得通
from bs4 import BeautifulSoup
import requests
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import urllib2
import time
from lxml import etree
while True:
keyword1 = "spam"
keyword2 = "notonwebsite"
keyword3 = "stackoverflow"
print("starting")
r = requests.get('http://kithnyc.com/sitemap_products_1.xml?from=60594372&to=9545825095')
soup = BeautifulSoup(r.text, 'lxml')
links = soup.find_all('loc')
for link in links:
while (keyword1 in link.text and keyword2 in link.text and keyword3 in link.text):
print(link.text)
jake = str(link.text)
在这里。我更改了它,使代码更清晰。我认为应该行得通
from bs4 import BeautifulSoup
import requests
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import urllib2
import time
from lxml import etree
while True:
keyword1 = "spam"
keyword2 = "notonwebsite"
keyword3 = "stackoverflow"
print("starting")
r = requests.get('http://kithnyc.com/sitemap_products_1.xml?from=60594372&to=9545825095')
soup = BeautifulSoup(r.text, 'lxml')
links = soup.find_all('loc')
for link in links:
while (keyword1 in link.text and keyword2 in link.text and keyword3 in link.text):
print(link.text)
jake = str(link.text)
控制流有问题。不管关键字是否存在,其余代码都将运行。将代码的其余部分放在break语句所在的位置。在最后一行加上破折号。@MohammadYusufGhazi你能写下这个吗?当我这样做的时候,它会在脚本中运行一次,并且结束时只打印“开始”…@martianwars有什么建议吗?如果可以,请减少您的代码,并提供@MohammadYusufGhazi肯定的东西,我一直在玩它,请尝试循环这个,直到第一个语句是真的,如果您的控制流有问题。不管关键字是否存在,其余代码都将运行。将代码的其余部分放在break语句所在的位置。在最后一行加上破折号。@MohammadYusufGhazi你能写下这个吗?当我这样做的时候,它只会在脚本中运行一次,并且结束时只打印“开始”…@martianwars有什么建议吗?如果可以,请减少您的代码,并提供@MohammadYusufGhazi肯定的东西,我一直在玩它,如果语句是真的,请尝试循环这个直到第一个