第二課作業(yè)

import requests

import time

from lxml import etree

import xlwt

headers = {

? ? 'User-Aegnt':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'

}

all_info_lists = []

def get_info(url,headers=headers):

? ? res = requests.get(url)

? ? html = etree.HTML(res.text)

? ? infos = html.xpath('//div[@class="col1"]/div')

? ? for info in infos:

? ? ? ? try:

? ? ? ? ? ? id = info.xpath('div[1]/a[2]/h2/text()')[0]

? ? ? ? except IndexError:

? ? ? ? ? ? pass

? ? ? ? ? ? id = info.xpath('div[1]/span[2]/h2/text()')[0]

? ? ? ? content1 = info.xpath('a[1]/div/span[1]')[0]

? ? ? ? content = content1.xpath('string(.)').strip()

? ? ? ? laugh = info.xpath('div[2]/span[1]/i/text()')[0]

? ? ? ? comment = info.xpath('div[2]/span[2]/a/i/text()')[0]

? ? ? ? info_list = [id,content,laugh,comment]

? ? ? ? all_info_lists.append(info_list)

if __name__ == '__main__':

? ? book = xlwt.Workbook(encoding='utf-8')

? ? sheet = book.add_sheet('sheet1')

? ? header =['id', 'content', 'laugh', 'comment']

? ? for t in range(len(header)):

? ? ? ? sheet.write(0, t, header[t])

? ? urls = ['https://www.qiushibaike.com/text/page/{}/'.format(str(i)) for i in range(1,14)]

? ? for url in urls:

? ? ? ? get_info(url)

? ? ? ? time.sleep(2)

? ? i = 1

? ? for list in all_info_lists:

? ? ? ? j = 0

? ? ? ? for data in list:

? ? ? ? ? ? sheet.write(i, j, data)

? ? ? ? ? ? j += 1

? ? ? ? i += 1

? ? book.save('C:/Users/madin/Desktop/test.xls')

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容