मैं केवल पहली छवि यूआरएल को स्क्रैप करने की कोशिश कर रहा हूं जिसमें एक जेपीजी है। मेरे पास वर्तमान में जो कोड है वह सभी जेपीजी छवियों को खींचता है जब मैं केवल पहला चाहता हूं।

    images = soup.findAll('img', src=True)
    image_src = [x['src'] for x in images]
    image_src = [x for x in image_src if x.endswith('.jpg')]
    print('Number of Images: ', len(images))
    for image in image_src:
            print(image)
0
Lukemul69 27 अक्टूबर 2020, 19:36

2 जवाब

सबसे बढ़िया उत्तर

मैं इसके बजाय लूप के बाद break जोड़ूंगा, फिर यह पहले पुनरावृत्ति पर टूट जाएगा:

image = soup.findAll('img', src=True)
image_src = [x['src'] for x in images]
image_src = [x for x in image_src if x.endswith('.jpg')]
print('Number of Images: ', len(images))
for image in image_src:
  print(image)
  break
1
programmer365 27 अक्टूबर 2020, 19:45

आप इसका उपयोग पृष्ठ में छवियों के सभी लिंक को स्क्रैप करने के लिए कर सकते हैं, मैंने एक विकी पृष्ठ का उपयोग किया है

from bs4 import BeautifulSoup
import requests

content = requests.get('https://en.wikipedia.org/wiki/Blaise_Pascal').content

soup = BeautifulSoup(content, 'lxml')

image_tags = soup.findAll('img')

for image_tag in image_tags:
    print(image_tag.get('src'))

पहला लिंक पृष्ठ में पहली छवि है। यदि आप अंत में break जोड़ते हैं तो आपको साइट की पहली छवि प्राप्त होगी।

0
Lakshan Costa 27 अक्टूबर 2020, 20:06