2016-04-06 58 views
0

Im刮hrefs的網站我已經使用.lower()和多數民衆贊成在罰款,但現在當我添加新的網站,我注意到一些在hrefs中有大寫和小寫。使我的rawinput不區分大小寫

如何在用戶輸入查找與兩者的鏈接匹配時使其生效。

示例搜索「護林員」會顯示所有流浪者,遊俠,rAnGeRs等。

USER_INPUT的raw_input =( 「搜索隊= 」)

頭= { '用戶代理': '的Mozilla/5.0'} REQ = urllib2.Request(「 http://wizhdsports.com/sports/Football.html」,無, 頭)RESP = urllib2.urlopen(REQ)

湯= BeautifulSoup(相應, from_encoding = resp.info()。getparam( '字符集'))

鏈接= soup.find_all( '一個', href = re.compile(user_input))if len(links) == 0: 打印「Wizhdsports.com沒有流可用」其他: 在鏈接鏈接: 打印(鏈接[「HREF」])

回答

0

由於您使用正則表達式匹配用戶輸入,您可以使用re.IGNORECASE標誌到re.compile這將執行不區分大小寫的匹配。

你原來的代碼示例更新:

import urllib2 
from bs4 import BeautifulSoup 
import re 

user_input = raw_input ("Search for Team = ") 

headers = { 'User-Agent' : 'Mozilla/5.0' } 
req = urllib2.Request("http://wizhdsports.com/sports/Football.html", None, headers) 
resp = urllib2.urlopen(req) 

# fix UserWarning that parser not explicitly specified with bs4 
soup = BeautifulSoup(resp, "html.parser", from_encoding=resp.info().getparam('charset')) 

links = soup.find_all('a', href=re.compile(user_input, flags=re.IGNORECASE)) 
if len(links) == 0: 
    print "Wizhdsports.com Have No Streams Available" 
else: 
    for link in links: 
     print (link['href'])