我正在尝试运行一个电子邮件收割机,当我在没有循环的情况下手动输入url时,我没有任何连接错误。
import re
import requests
import requests.exceptions
from urllib.parse import urlsplit
from collections import deque
from bs4 import BeautifulSoup
def email_harvest(starting_url):
# starting url. replace google with your own url.
#starting_url = 'http://www.miet.ac.in'
print ('this is the starting urli '+starting_url)
#starting_url = website_url[i]
# i += 1
# a queue of urls to be crawled
unprocessed_urls = deque([starting_url])
# set of already crawled urls for email
processed_urls = set()
# a set of fetched emails
emails = set()
# process urls one by one from unprocessed_url queue until queue is empty
while len(unprocessed_urls):
# move next url from the queue to the set of processed urls
url = unprocessed_urls.popleft()
processed_urls.add(url)
# extract base url to resolve relative links
parts = urlsplit(url)
base_url = "{0.scheme}://{0.netloc}".format(parts)
path = url[:url.rfind('/')+1] if '/' in parts.path else url
print (url)
# get url's content
#print("Crawling URL %s" % url)
try:
response = requests.get(url)
print (response.status_code)
except (requests.exceptions.MissingSchema, requests.exceptions.ConnectionError):
# ignore pages with errors and continue with next url
print ("error crawing " % url)
continue
# extract all email addresses and add them into the resulting set
# You may edit the regular expression as per your requirement
new_emails = set(re.findall(r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+", response.text, re.I))
emails.update(new_emails)
print(emails)
# create a beutiful soup for the html document
soup = BeautifulSoup(response.text, 'lxml')
# Once this document is parsed and processed, now find and process all the anchors i.e. linked urls in this document
for anchor in soup.find_all("a"):
# extract link url from the anchor
link = anchor.attrs["href"] if "href" in anchor.attrs else ''
# resolve relative links (starting with /)
if link.startswith('/'):
link = base_url + link
elif not link.startswith('http'):
link = path + link
# add the new url to the queue if it was not in unprocessed html" target="_blank">list nor in processed list yet
if not link in unprocessed_urls and not link in processed_urls:
unprocessed_urls.append(link)
website_url = tuple(open('text.txt','r'))
i = 0
while i < (len(website_url)+1):
print (i)
starting_url = 'http://'+ website_url[i]
email_harvest(starting_url)
i +=1
然而,当我从文件中加载url时,我得到以下错误“名称或服务错误”
回溯(最近一次调用):文件“/usr/lib/python3/dist-packages/urllib3/connection.py”,第141行,在新连接(self.host,self.port),self.timeout,**extra_-kw)文件“/usr/lib/python3/dist-packages/urllib3/util/connection.py”,第60行,在socket.getaddrinfo(主机,端口,家族,socket.socket_流):文件“/usr/lib/python3.6/socket.py”,第745行,在getaddrinfo中,用于_socket.getaddrinfo中的res(主机、端口、系列、类型、协议、标志):socket.gaierro:[Errno-2]名称或服务未知
在处理上述异常时,发生了另一个异常:
回溯(最近一次调用):文件“/usr/lib/python3/dist packages/urllib3/connectionpool.py”,第601行,在urlopen chunked=chunked)文件“/usr/lib/python3/dist packages/urllib3/connectionpool.py”中,第357行,在“发出请求连接请求”(方法,url,**httplib\u-request\u-kw)文件“/usr/lib/python3.6/http/client.py”,第1254行,在请求self.\u发送请求(方法、url、正文、标题、编码块)文件“/usr/lib/python3.6/http/client.py”,第1300行,在请求self.endheaders(正文,编码块=编码块)文件“/usr/lib/python3.6/http/client.py”,第1249行,在endheaders self.\u发送输出(消息体,编码块=编码块)文件“/usr/lib/python3.6/http/client.py”,在发送文件/usr/lib/python3.6/http/client.py中的第1036行,在发送self.connect()文件/usr/lib/python3/dist packages/urllib3/connection.py中,在connect conn=self中的第166行,在connect conn=self中。在新的conn()文件/usr/lib/python3/dist packages/lib3/connection.py中,第974行“,第150行,在_new_conn self中,”未能建立新连接:%s”%e)urllib3.exceptions.NewConnectionError::未能建立新连接:[Errno-2]名称或服务未知
在处理上述异常时,发生了另一个异常:
回溯(最近一次调用):文件“/usr/local/lib/python3.6/dist packages/requests/adapters.py”,第449行,在发送超时=超时文件“/usr/lib/python3/dist packages/urllib3/connectionpool.py”中,第639行,在urlopen\u stacktrace=sys.exc_info()[2])文件“/usr/lib/python3/dist packages/urllib3/util/retry.py”,第398行,在增量raise MaxRetryError(_pool,url,error或ResponseError(原因))urllib3.exceptions.MaxRetryError:HTTPConnectionPool(host='www.miet.ac.in
在处理上述异常时,发生了另一个异常:
Traceback(最近一次调用):File"editog.py",第39行,在email_harvest响应=requests.get(url)File"/usr/loce/lib/python3.6/dist-包/请求/api.py",第75行,在get返回请求('get', url, params=params,**kwargs)File"/usr/local/lib/python3.6/dist-包/请求/api.py",第60行,在请求返回session.request(method=method, url=url,**kwargs)File"/usr/local/lib/python3.6/dist-包/请求/sessions.py,第533行,在请求resp=self.send(prep,**send_kwargs)文件/usr/本地/lib/python3.6/dist-包/请求/sessions.py,第646行,在发送r=adapter.send(请求,**kwargs)文件"/usr/local/lib/python3.6/dist-包/请求/adapters.py",第516行,在发送提高连接错误(e,请求=请求)requests.exceptions.连接错误: HTTPConnectionpool(host='www.miet.ac.in ', port=80):最大重试超过url:/(造成NewConnectionError(':未能建立新的连接:[Errno-2]名称或服务不知道',))
注:
主机='www.miet.ac.in
问题在于字符串插值
我想在上运行我的站点,并且我想将数据库连接到另一个容器,该容器只有我所有站点的数据库。 为此,我使用以下创建了一个容器: 正如您所看到的,我已经使用映像安装了作为服务,这将返回以下内容: 然后,我创建了一个具有实例的新容器: 如您所见,我挂载了文件夹,因为我已经安装了带有插件和媒体的Wordpress...然后我尝试将此容器连接到容器,但当我使用以下方式运行此容器时: 我得到: MySQL连接错误
问题内容: 在服务器中运行代码,env为debian时出现此错误,并且 当我运行时,它可以正常工作,没有任何错误: 问题答案: 似乎您正在尝试将Redis与当前Debian环境无法识别的服务器连接。从Traceback,我看到您正在尝试使用主机名localhost进行连接, 但是,您的系统无法理解“ localhost”,在主机文件中输入内容,即说127.0.0.1是localhost。在/ et
问题内容: 我正在尝试使用httplib将信用卡信息发送到authorize.net。当我尝试发布请求时,得到以下回溯: 我这样建立我的请求: 要添加另一层,它正在我们的开发服务器上运行,该服务器具有httplib 2.6,并且在httplib.HTTPSConnection中没有source_address参数。 任何帮助是极大的赞赏。 =============================
我们有一个私人空间,并提供了一个内部API的访问权限,这样我们就可以从私人空间应用程序访问它。因此,我们开发了一个演示Java应用程序来测试它。当我们尝试用HTTP连接服务时,堆栈跟踪会像这样结束。 当我们ping私有空间中的相应IP时,我们可以看到它已启动。但是当我们试图从Java应用程序中访问服务时,它就像上面那样结束了。 Java 代码是这样的: 有没有人有任何想法来解决这个问题? 谢谢你。
问题可能是什么,如何解决?请帮帮我
问题内容: 我正在与一个名为CommWeb的商户帐户集成,并向其URL(https://migs.mastercard.com.au/vpcdps)发送一个SSL帖子。当我尝试发送帖子时,出现以下异常: 执行该帖子的代码(我没有写过,并且已经存在于我们的代码库中)是: 商户帐户集成的文档对证书一无所知。他们确实提供了一些似乎盲目接受证书的示例JSP代码: 我们的Web应用程序有一个密钥库,我尝试使