我试图查找链接是否包含" .pdf"在它的结尾。
我正在跳过#34; .pdf"之前的所有角色。在正则表达式中使用[/w/-]+
,然后查看它是否包含" .pdf"。我是正则表达式的新手。
代码是:
import urllib2
import json
import re
from bs4 import BeautifulSoup
url = "http://codex.cs.yale.edu/avi/os-book/OS8/os8c/slide-dir/"
response = urllib2.urlopen(url)
soup = BeautifulSoup(response.read())
links = soup.find_all('a')
for link in links:
name = link.get("href")
if(re.match(r'[\w/.-]+.pdf',name)):
print name
我希望将名称与以下类型的链接匹配:
PDF-DIR / ch1.pdf
答案 0 :(得分:3)
您不需要正则表达式。使用CSS selector检查href
是否以pdf
结尾:
for link in soup.select("a[href$=pdf]"):
print(link["href"])
答案 1 :(得分:1)
我对您的代码做了一些小改动
for link in links:
name = link.get("href")
if(re.search(r'\.pdf$',name)):
print name
输出如下:
PDF-DIR / ch1.pdf
PDF-DIR / ch2.pdf
PDF-DIR / ch3.pdf
PDF-DIR / ch4.pdf
PDF-DIR / ch5.pdf
PDF-DIR / ch6.pdf
PDF-DIR / ch7.pdf
PDF-DIR / ch8.pdf
PDF-DIR / ch9.pdf
PDF-DIR / ch10.pdf
PDF-DIR / ch11.pdf
PDF-DIR / ch12.pdf
PDF-DIR / ch13.pdf
PDF-DIR / ch14.pdf
PDF-DIR / ch15.pdf
PDF-DIR / ch16.pdf
PDF-DIR / ch17.pdf
PDF-DIR / ch18.pdf
PDF-DIR / ch19.pdf
PDF-DIR / ch20.pdf
PDF-DIR / ch21.pdf
PDF-DIR / ch22.pdf
PDF-DIR / appA.pdf
PDF-dir / appC.pdf