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