亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用正則表達式識別來自美麗湯的電子郵件

使用正則表達式識別來自美麗湯的電子郵件

嗶嗶one 2022-09-27 15:18:33
我是一個初學者,正在開發一個可以從給定網站抓取電子郵件的程序。代碼如下:import requests, bs4, reprint('Fetching Website...')res = requests.get('https://examplewebsite.com')res.raise_for_status()soup = bs4.BeautifulSoup(res.text, 'html.parser')type(soup)my_list = []for link in soup.find_all('a'):    my_list.append(link.get('href'))emailregex = re.compile(r'''(    [a-zA-Z0-9._%+-:]+    @    [a-zA-Z0-9.-]+    \.[a-zA-Z]{2,4}    )''', re.VERBOSE)newlist = list(filter(emailregex.search, my_list))print(newlist)print('---Done---')但是,當我運行代碼時,我收到一個錯誤:“TypeError:預期的字符串或類似字節的對象”。我發現如果我這樣做:newlist = list(filter(emailregex.search, str(my_list)))print(newlist)錯誤將消失,但我的“新列表”不包含任何結果。我已驗證“my_list”確實返回了預期結果的列表。我發現,如果我打印“my_list”并將其內容粘貼到一個新文件中,在那里我將其添加到運行相同代碼的列表中,它就可以正常工作,因此我不認為這是正則表達式的問題。我認為這可能是“my_list”中的數據類型?我真的沒有任何好主意,所以任何幫助都將不勝感激。
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

"TypeError: expected string or bytes-like object"是因為不僅包括字符串,而是要將變量轉換為大字符串my_liststr(my_list)


print(str(my_list)) # this is a string

print(type(str(my_list)))  # output: str

您需要將 的每個項都更改為字符串,然后重試my_list


my_list = list(map(str, my_list))

newlist = list(filter(emailregex.search, my_list))


查看完整回答
反對 回復 2022-09-27
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

import requests

from bs4 import BeautifulSoup

import re



def main(url):

    r = requests.get(url)

    soup = BeautifulSoup(r.content, 'html.parser')

    target = "".join([item.get("href")

                      for item in soup.findAll("a", href=True)])

    matches = re.findall(

        r'''[a-zA-Z0-9._%+-:]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}''', re.VERBOSE, target)

    for match in matches:

        print(match)



main("https://www.example.com")


查看完整回答
反對 回復 2022-09-27
  • 2 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號