BeautifulSoup
, httplib2
, time
re
, pandas
, datetime
import pandas as pd
from bs4 import BeautifulSoup
import httplib2
import re
import time
from datetime import datetime
`suppe``` von`
oup = BeautifulSoup (content, 'lxml')
zu speichern.num = 1
h = httplib2.Http('.cache')
base_url = "http://~/page"
url=base_url+ str(num)
response, content = h.request(url)
content = content.decode('utf-8')
soup = BeautifulSoup(content, 'lxml')
data = soup.find_all('div', {"id": "primary"})
`data``` von`
find_all extrahiert wird, wird beim weiteren Extrahieren von `` `find_all
von dort`` data [0] `` Beachten Sie, dass es als
angegeben ist. `Daten
Daten enthalten nicht nur Datum und Uhrzeit, sondern auch Informationen wie Uhrzeit. Da hier nur Datum und Uhrzeit verwendet werden, werden nur Datum und Uhrzeit extrahiert und in ``
temp``` gespeichert. `temp``` in datetime type und speichern Sie es in
list. `` `Index``, da die Originaldaten sowohl Typen von` `% d /% m /% Y
als auch Typen von
% Y-% m-% d``` enthalten Fälle werden mit `klassifiziert und in den Datetime-Typ konvertiert.dates = data[0].find_all('span', class_ = 'posted-on')
temp = []
for item in dates:
date = item.text
temp.append(date[1:11].split())
dlist = []
for item in temp:
index = item[0].find("/")
if index != -1:
dlist.append(datetime.strptime(item[0], '%d/%m/%Y').date())
else:
dlist.append(datetime.strptime(item[0], '%Y-%m-%d').date())
`tlist``` (Überschrift ... Titel t),`
ulist``` (URL).
*Hier für die Überschrift die Escape-Sequenz(\n|\r|\t)Wir arbeiten daran, zu entfernen.newdata = data[0].find_all('h2', class_ ='entry-title')
tlist = []
ulist = []
for item in newdata:
urls = re.search('href="(?P<URL>.+?)"', str(item)).group('URL')
titles = item.get_text()
ulist.append(urls)
tlist.append(re.sub(r'\n|\r|\t', '', titles))
list_headline = pd.DataFrame({'date':dlist,
'headline':tlist,
'url':ulist})
`num``` als Variable gesetzt ist und eine Seite mit der gleichen Struktur automatisch gemäß dem Wert von` `num``` erfasst werden kann. (
Url = base_url + str (num)
`` in 1. definiert dies)`headline```) und die Variable (hier`
num) mit` `def
und den Inhalt der Funktion Einrücken und schreiben (Details siehe "Aktueller Code" unten).def headline(num):
h = httplib2.Http('.cache')
base_url = "http://~/page"
url=base_url+ str(num)
#Unterlassung#
return list_headline
time.sleep (5)
).print (i)
wird zur Fehlerprüfung verwendet.headlines = headline(1)
time.sleep(5)
for i in range (2,5):
temp = headline(i)
headlines = pd.concat([headlines, temp])
time.sleep(5)
print (i)
#headlines.to_csv(datetime.today().strftime("%Y%m%d")+'FILENAME.csv') ##Grundsätzlich.csv ist einfacher zu bedienen und wird empfohlen
headlines.to_excel('/Users/USERNAME/FOLDERNAME/'+ datetime.today().strftime("%Y%m%d")+'FILENAME.xlsx') ##Klicken Sie hier, wenn das Excel-Format besser ist
base_url
) und das Speicherziel (siehe 8. oben) fiktive Nummern eingefügt sind. Selbst wenn Sie diesen Code direkt verwenden, erhalten Sie keine Ergebnisse.import pandas as pd
from bs4 import BeautifulSoup
import httplib2
import re
import time
from datetime import datetime
def headline(num):
h = httplib2.Http('.cache')
base_url = "http://~/page"
url=base_url+ str(num)
response, content = h.request(url)
soup = BeautifulSoup(content, 'lxml')
data = soup.find_all('div', {"id": "primary"})
dates = data[0].find_all('span', class_ = 'posted-on')
temp = []
for item in dates:
date = item.text
temp.append(date[1:11].split())
dlist = []
for item in temp:
index = item[0].find("/")
if index != -1:
dlist.append(datetime.strptime(item[0], '%d/%m/%Y').date())
else:
dlist.append(datetime.strptime(item[0], '%Y-%m-%d').date())
newdata = data[0].find_all('h2', class_ ='entry-title')
tlist = []
ulist = []
for item in newdata:
urls = re.search('href="(?P<URL>.+?)"', str(item)).group('URL')
titles = item.get_text()
ulist.append(urls)
tlist.append(re.sub(r'\n|\r|\t', '', titles))
list_headline = pd.DataFrame({'date':dlist,
'headline':tlist,
'url':ulist})
return list_headline
headlines = headline(1)
time.sleep(5)
for i in range (2,5):
temp = headline(i)
headlines = pd.concat([headlines, temp])
time.sleep(5)
print (i)
#headlines.to_csv(datetime.today().strftime("%Y%m%d")+'FILENAME.csv')
headlines.to_excel('/Users/USERNAME/FOLDERNAME/'+ datetime.today().strftime("%Y%m%d")+'FILENAME.xlsx') ##Klicken Sie hier, wenn das Excel-Format besser ist
Recommended Posts