À la hâte, il y avait une demande de sauvegarde de données qui s'étendent sur plusieurs pages dans une base de données, alors je l'ai écrite dans un travail précipité. Les sélecteurs CSS sont extrêmement utiles, n'est-ce pas?
scl.py
import requests, os, re, csv, bs4
import sqlite3
import lxml.html
a = 0
i = 0
url = 'https://www.〜'
while a < 55:
a += 1
res = requests.get(url)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'lxml')
for u in soup.select('.plan-module > .plan-link.plan-image-container'):
urls = 'https://www.〜' + u.attrs['href']
#print (urls)
con = sqlite3.connect('url.db')
c = con.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS urldata(urls unique)''')
c.execute('INSERT INTO urldata VALUES (?)',[urls])
con.commit()
con.close()
i += 1
url = 'https://www.〜?=' + str(i)
print ('success')
Cependant, il s'est avéré que la pagination est un élément dynamique et qu'il est inutile sans utiliser Selenium.
Recommended Posts