Python web自动化从网页获取电子邮件
我想要一个python脚本,打开一个链接并打印该页面的电子邮件地址 例如Python web自动化从网页获取电子邮件,python,Python,我想要一个python脚本,打开一个链接并打印该页面的电子邮件地址 例如 转到example.com之类的网站 在那搜索电子邮件 搜索该链接中的所有页面 我在密码下被试过 import requests from bs4 import BeautifulSoup r = requests.get('http://www.digitalseo.in/') data = r.text soup = BeautifulSoup(data) for rate in soup.find_all('@'
import requests
from bs4 import BeautifulSoup
r = requests.get('http://www.digitalseo.in/')
data = r.text
soup = BeautifulSoup(data)
for rate in soup.find_all('@'):
print rate.text
我把这个网站作为参考
有人帮我找到这个吗?因为find_all()
只会搜索标签。从文件:
签名:find_all(名称、属性、递归、字符串、限制、**kwargs)
find_all()
因此,您需要添加一个关键字参数,如下所示:
import re
import requests
from bs4 import BeautifulSoup
def get_link_by_keyword(keyword):
links = set()
for i in soup.find_all(href=re.compile(r"[http|/].*"+str(keyword))):
links.add(i.get('href'))
for i in links:
if i[0] == 'h':
yield i
elif i[0] == '/':
yield link+i
else:
pass
global link
link = raw_input('Please enter a link: ')
if link[-1] == '/':
link = link[:-1]
r = requests.get(link, verify=True)
data = r.text
soup = BeautifulSoup(data, "html.parser")
for i in get_link_by_keyword(raw_input('Enter a keyword: ')):
print i
演示:
contact@digitalseo.in
contact@digitalseo.in
从文件:
任何无法识别的参数都将转换为标记属性之一的过滤器。如果为名为id的参数传入一个值,Beauty Soup将根据每个标记的“id”属性进行过滤:
有关详细信息,请参见文档:
如果您想从文档中查找电子邮件地址,regex
是一个不错的选择
例如:
import re
re.findall( '[^@]+@[^@]+\.[^@]+ ', text) # remember change `text` variable
如果您想通过关键字在页面中找到链接,只需使用。获取如下内容:
import re
import requests
from bs4 import BeautifulSoup
def get_link_by_keyword(keyword):
links = set()
for i in soup.find_all(href=re.compile(r"[http|/].*"+str(keyword))):
links.add(i.get('href'))
for i in links:
if i[0] == 'h':
yield i
elif i[0] == '/':
yield link+i
else:
pass
global link
link = raw_input('Please enter a link: ')
if link[-1] == '/':
link = link[:-1]
r = requests.get(link, verify=True)
data = r.text
soup = BeautifulSoup(data, "html.parser")
for i in get_link_by_keyword(raw_input('Enter a keyword: ')):
print i
你试过了吗?你可以使用和来做这件事。是的。我试过用BeautifulSoup。但是我弄不到。你的密码是什么?错误消息是什么?输出是什么?从bs4导入请求import BeautifulSoup r=requests.get(')data=r.text soup=BeautifulSoup(数据)以获取soup中的速率。find_all('@'):print rate.text我没有得到任何输出。我把那个网站作为参考。好吧,因为find_all()
函数将搜索标签,而不是电子邮件地址。我将发布一个答案来解释这一点。我认为你应该编辑你的问题并添加你的代码。这很有效。可以根据@符号查找邮件。否,这将搜索href=mailto
。如果您检查HTML,您将看到类似于
的内容。是否有任何方法可以根据@符号查找电子邮件。因为在某些情况下,将列出没有“是”的电子邮件地址,如果您希望在文档或字符串中搜索电子邮件地址,请使用regex而不是BeautifulSoup。让我编辑我的答案并添加它。好的,先生。非常感谢。这很有帮助。谢谢。
import re
re.findall( '[^@]+@[^@]+\.[^@]+ ', text) # remember change `text` variable
import re
import requests
from bs4 import BeautifulSoup
def get_link_by_keyword(keyword):
links = set()
for i in soup.find_all(href=re.compile(r"[http|/].*"+str(keyword))):
links.add(i.get('href'))
for i in links:
if i[0] == 'h':
yield i
elif i[0] == '/':
yield link+i
else:
pass
global link
link = raw_input('Please enter a link: ')
if link[-1] == '/':
link = link[:-1]
r = requests.get(link, verify=True)
data = r.text
soup = BeautifulSoup(data, "html.parser")
for i in get_link_by_keyword(raw_input('Enter a keyword: ')):
print i