링크를 열고 해당 페이지의 이메일 주소를 인쇄하는 파이썬 스크립트를 원합니다.
예
나는 아래 코드를 시도했다
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(name, attrs, recursive, string, limit, **kwargs)
이
find_all()
메서드는 태그의 하위 항목을 살펴보고 필터와 일치하는 모든 하위 항목을 검색합니다.
따라서 다음과 같은 키워드 인수를 추가해야합니다.
import re
import requests
from bs4 import BeautifulSoup
r = requests.get('http://www.digitalseo.in/')
data = r.text
soup = BeautifulSoup(data, "html.parser")
for i in soup.find_all(href=re.compile("mailto")):
print i.string
데모:
[email protected]
[email protected]
문서에서 :
인식되지 않는 인수는 태그 속성 중 하나에 대한 필터로 바뀝니다. id라는 인수 값을 전달하면 뷰티플 수프가 각 태그의 'id'속성에 대해 필터링합니다.
soup.find_all(id='link2')
# [<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>]
에 대한 값을 전달하면
href
뷰티플 수프가 각 태그의 'href'속성에 대해 필터링합니다.
soup.find_all(href=re.compile("elsie"))
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]
자세한 내용은 http://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all 문서를 참조하세요.
문서에서 이메일 주소를 찾으려면 regex
좋은 선택입니다.
예를 들면 :
import re
re.findall( '[^@]+@[^@]+\.[^@]+ ', text) # remember change `text` variable
키워드로 페이지에서 링크를 찾으려면 다음과 같이 사용 .get
하십시오.
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
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다