Tidak dapat membuat lembar berbeda dalam file excel untuk tautan berbeda

Saya telah menulis skrip dengan python untuk mengurai beberapa tiles dan links tutorial berbeda dari halaman web dan akhirnya menulisnya dalam file excel. Saya telah menggunakan openpyxl. Skrip saya berfungsi dengan baik jika saya mempertimbangkan untuk mendapatkan semua dokumen dalam satu lembar. Namun, saya telah menggunakan tiga tautan di scraper saya untuk mengambil data. Tujuan saya adalah menulis dokumen-dokumen bekas itu dalam tiga lembar berbeda dalam file excel. Bagaimana saya bisa mencapainya? Terima kasih sebelumnya.

Inilah yang saya tulis sejauh ini:

import requests
from urllib.parse import urljoin
from lxml.html import fromstring
from openpyxl import Workbook

wb = Workbook()
wb.active
ws = wb.worksheets[0]

storage ={
'http://www.wiseowl.co.uk/videos/year/2011.htm',
'http://www.wiseowl.co.uk/videos/year/2012.htm',
'http://www.wiseowl.co.uk/videos/year/2013.htm'
}

def get_docs(link):
    response = requests.get(link)
    root = fromstring(response.text)
    for item in root.cssselect(".woVideoListDefaultSeriesTitle"):
        title = item.cssselect("a")[0].text
        title_link = item.cssselect("a")[0].attrib['href']
        print(title,title_link)
        ws.append([title,title_link])
        wb.save("tuts.xlsx")

if __name__ == '__main__':
    for tut_link in storage:
        get_docs(tut_link)

Sekali lagi, skrip saya dapat mengikis dokumen dan menuliskannya dalam satu lembar dalam file excel tetapi saya ingin dokumen tersebut ditulis dalam tiga lembar berbeda (setiap lembar untuk setiap tautan) dalam file excel.


person SIM    schedule 13.01.2018    source sumber
comment
Apa yang kamu tidak tahu caranya?   -  person Charlie Clark    schedule 14.01.2018
comment
Jadi tidak ada hal lain yang lebih baik untuk dilakukan tanpa membuat komentar yang menjengkelkan @Charlie Clark. Btw, masalahnya sudah teratasi.   -  person SIM    schedule 14.01.2018
comment
Harap tinjau peraturan dalam mengajukan pertanyaan.   -  person Charlie Clark    schedule 15.01.2018
comment
Dimana kesalahanku?   -  person SIM    schedule 15.01.2018
comment
openpyxl.readthedocs.io/en/latest/usage.html# write-a-workbook menunjukkan cara membuat sheet. Pertanyaan Anda seharusnya dimulai dari sana.   -  person Charlie Clark    schedule 15.01.2018
comment
Jika saya tidak dapat memberikan kejelasan tentang pertanyaan saya, bagaimana saya bisa mendapatkan jawaban tepat yang saya inginkan? Ternyata Anda sudah memberikan komentar kasar sejak awal dan mendapat balasan yang bahkan kasar, itulah sebabnya Anda tidak bisa menerima ini. Mari kita abaikan perilaku kekanak-kanakan ini. Terima kasih.   -  person SIM    schedule 15.01.2018


Jawaban (1)


Kode di bawah mengembalikan sheet yang terlihat seperti ini: ~Cuplikan Layar Excel

Sebelum perulangan for Anda, kami membuat sheet baru untuk memasukkan hasilnya. Kami kemudian mengulangi menyimpan hasilnya ke sheet itu.

Kode:

import requests
from urllib.parse import urljoin
from lxml.html import fromstring
from openpyxl import Workbook

wb = Workbook()
wb.active

storage ={
'http://www.wiseowl.co.uk/videos/year/2011.htm',
'http://www.wiseowl.co.uk/videos/year/2012.htm',
'http://www.wiseowl.co.uk/videos/year/2013.htm'
}

def get_docs(link):
    response = requests.get(link)
    root = fromstring(response.text)
    # Create a worksheet with the title of the year.
    ws = wb.create_sheet(link[37:-4])
    for item in root.cssselect(".woVideoListDefaultSeriesTitle"):
        title = item.cssselect("a")[0].text
        title_link = item.cssselect("a")[0].attrib['href']
        print(title,title_link)
        ws.append([title,title_link])

if __name__ == '__main__':
    for tut_link in storage:
        get_docs(tut_link)
    sheet=wb.get_sheet_by_name('Sheet')
    wb.remove_sheet(sheet)
    wb.save("tuts.xlsx")
person Spence Wetjen    schedule 13.01.2018
comment
Anda luar biasa @Spence Wetjen!!!! Solusi Anda adalah apa yang saya harapkan. Hanya satu hal: apakah mungkin untuk mengeluarkan lembar kosong itu dari buku kerja. Terima kasih satu triliun. - person SIM; 13.01.2018
comment
@ pemula-coder Tentu. Memperbarui solusi untuk mencerminkan hal ini. - person Spence Wetjen; 13.01.2018
comment
Terima kasih banyak. Saya berharap saya dapat meningkatkan solusi Anda ribuan kali. Terima kasih lagi. - person SIM; 13.01.2018