2017-01-21 4 views
1

Мне нужно создать код для извлечения слова из одной царапины изображений. Я объясню, со страницы sitemap.xml мой код должен попробовать в каждой ссылке, присутствующей в этом xml-файле, найти каждую ссылку, если есть определенное слово, внутри ссылки изображения.Как создать список из файла sitemap.xml, чтобы извлечь url в python?

карта сайта является адидас = http://www.adidas.it/on/demandware.static/-/Sites-adidas-IT-Library/it_IT/v/sitemap/product/adidas-IT-it-it-product.xml

это код, который я создал для поиска изображение содержит слово «ZOOM»:

import requests 
from bs4 import BeautifulSoup 

html = requests.get(
'http://www.adidas.it/scarpe-superstar/C77124.html').text 
bs = BeautifulSoup(html) 
possible_links = bs.find_all('img') 
for link in possible_links: 
    if link.has_attr('src'): 
    if link.has_key('src'): 
     if 'zoom' in link['src']: 
      print link['src'] 

но им искать Metod, чтобы очистить список в автоматическом

ThankYou так

я пытаюсь сделать это для есть список:

from bs4 import BeautifulSoup 
import requests 

url = "http://www.adidas.it/on/demandware.static/-/Sites-adidas-IT-Library/it_IT/v/sitemap/product/adidas-IT-it-it-product.xml" 

r = requests.get(url) 

data = r.text 

soup = BeautifulSoup(data) 

for url in soup.findAll("loc"): 
print url.text 

, но я не могу прикрепить запрос ..

я могу найти слово «Масштаб» в любой ссылке, присутствующей в sitemap.xml

ThankYou столько

+0

И ваш вопрос ... –

+0

обновите код, а не комментарий. –

ответ

0
import requests 
from bs4 import BeautifulSoup 
import re 

def make_soup(url): 
    r = requests.get(url) 
    soup = BeautifulSoup(r.text, 'lxml') 
    return soup 
# put urls in a list 
def get_xml_urls(soup): 
    urls = [loc.string for loc in soup.find_all('loc')] 
    return urls 
# get the img urls 
def get_src_contain_str(soup, string): 
    srcs = [img['src']for img in soup.find_all('img', src=re.compile(string))] 
    return srcs 
if __name__ == '__main__': 
    xml = 'http://www.adidas.it/on/demandware.static/-/Sites-adidas-IT-Library/it_IT/v/sitemap/product/adidas-IT-it-it-product.xml' 
    soup = make_soup(xml) 
    urls = get_xml_urls(soup) 
    # loop through the urls 
    for url in urls: 
     url_soup = make_soup(url) 
     srcs = get_src_contain_str(url_soup, 'zoom') 
     print(srcs) 
+0

нормально, но найти слово в файле xml? в этом http://www.adidas.it/on/demandware.static/-/Sites-adidas-IT-Library/it_IT/v/sitemap/product/adidas-IT-it-it-product.xml я должен искать слово «Масштаб» в любой ссылке, присутствующей в файле XML :) большое спасибо так много –

+0

печать 0 , потому что я ищу в каждой ссылке данного XML и печати IMG со словом Увеличить в этом обновлении я поиск в XML в ссылке адрес слова zoom .. но не внутри каждой открытой ссылки –

+0

его трудно объяснить: D извините вся ссылка в файле Sitemap содержит веб-страницу --- в каждой ссылке я должен открыть и найти слово «зум» –