Ici, nous expliquerons le scraping Web en utilisant Python.
BeautifulSoup
Supposons que vous souhaitiez explorer et gratter une page Web qui affiche le fichier HTML suivant.
<ul class="list-group">
  <li class="list-group-item"><a href="">Élément 1</a></li>
  <li class="list-group-item"><a href="">Élément 2</a></li>
  <li class="list-group-item"><a href="">Élément 3</a></li>
</ul>
Le script Python ressemble à ceci:
import requests
from bs4 import BeautifulSoup
url =URL pour obtenir du HTML
response = requests.get(url)
response.encoding = response.apparent_encoding
bs = BeautifulSoup(response.text, 'html.parser')
ul = bs.select('ul.list-group')
for li in ul[0].select('li.list-group-item'):
    a_tags = li.select('a')
    a_tag = a_tags[0]
    item_name = a_tag.text.strip()
Scrapy
Supposons que vous souhaitiez explorer et gratter un fichier HTML similaire à celui utilisant Beautiful Soup ci-dessus.
<ul class="list-group">
  <li class="list-group-item"><a href="">Élément 1</a></li>
  <li class="list-group-item"><a href="">Élément 2</a></li>
  <li class="list-group-item"><a href="">Élément 3</a></li>
</ul>
import scrapy
class SampleSpider(scrapy.Spider):
    name = 'sample'
    allowd_domains = [domaine]
    start_urls = [
Cible URL
    ]
    def parse_list(self, response):
        ul = response.css('ul.list-group')[0]
        for li in ul.css('li.list-group-item'):
            item_url = li.css('a::attr(href)').extract_first()
            yield scrapy.Request(item_url, callback=parse_detail)
    def parse_detail(self, response):
        item_name = response.css('h1.item-name::text').extract_first()
        return item_name
Ici, j'ai expliqué la méthode de scraping Web en utilisant Beautiful Soup et Scrapy.
Recommended Posts