我解析了整个
HTML文件,使用
Python中的Beautifulsoup模块提取了一些URL,并且代码安静:
for link in soup.find_all('a'):
for line in link :
if "condition" in line :
print link.get("href")
我在shell中获得了一系列观察if循环中条件的链接:
> http:// ..link1
> http:// ..link2
>.
>.
> http:// ..linkn
我怎么能把变量“输出”只放在这个列表的第一个链接?
编辑:
该网页为:http://download.cyanogenmod.com/?device=p970,该脚本必须在HTML页面中返回第一个短URL(http://get.cm / …).
最佳答案 你可以使用oneliner来做到这一点:
import re
soup.find('a', href=re.compile('^http://get.cm/get'))['href']
将它分配给一个变量:
variable=soup.find('a', href=re.compile('^http://get.cm/get'))['href']
我不知道你到底在做什么,所以我将从头开始发布完整的代码:
NB!如果你使用bs4更改导入
import urllib2
from BeautifulSoup import BeautifulSoup
import re
request = urllib2.Request("http://download.cyanogenmod.com/?device=p970")
response = urllib2.urlopen(request)
soup = BeautifulSoup(response)
variable=soup.find('a', href=re.compile('^http://get.cm/get'))['href']
print variable
>>>
http://get.cm/get/4jj