亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于list的索引?

關于list的索引?

from?lxml?import?etree import?requests #爬取糗事百科 page?=?eval(input("請輸入需要爬取的總頁數:")) #print(type(page)) #page?=?3 data?=?"" x?=?"" for?p?in?range(1,page+1): ????url?=?"https://www.qiushibaike.com/8hr/page/{}/".format(p) ????print(url) ????headers?=?{ ????????"User-Agent":?"Mozilla/5.0?(Windows?NT?6.3;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/64.0.3282.186?Safari/537.36" ????} ????res?=?requests.get(url,?headers?=?headers) ????tree?=?etree.HTML(res.text) ????all?=?tree.xpath('//div[@id="content-left"]/div') ????data?+=?url+'\n' ????for?div?in?all: ????????author?=?div.xpath('.//h2/text()') ????????age?=?div.xpath('.//div[contains(@class,?"articleGender")]/text()') ????????content?=?div.xpath('.//span/text()') ????????xinbie?=?div.xpath('.//div[contains(@class,?"articleGender")]/@class') ????????funny?=?div.xpath('.//span[@class="stats-vote"]/i/text()') ????????conment?=?div.xpath('.//a[@class="qiushi_comments"]/i/text()') ????????if?xinbie?==?'articleGender?manIcon': ????????????x?='男' ????????elif?xinbie?=='articleGender?womenIcon': ????????????x?=?'女' ????????else: ????????????x?=?"性別不明" ????????up?=?'作者:'?+?author[0].strip()?+?'\t性別:'+?x?+'\t年齡:'?+?str(age) ????????middle?=?content[0].strip() ????????bottom?=?'好笑數:'+?funny[0]?+?'\t評論數:'?+?conment[0] ????????data+=?up?+?'\n'?+?middle?+'\n'+bottom+'\n' ????????print('author:',author[0],type(author)) ????????print('age:',?age[0],type(age)) ????????print('content:',?content[0],?type(content)) ????????print('funny:',?funny[0],?type(funny)) ????????print('conment:',?conment[0],?type(conment)) ??????? with?open('xiushibaike_spider.txt',?'w',?encoding="utf-8")?as?f: ????f.write(data)爬取了5個字段,類型都為list,為什么唯獨age[0]提示? ?IndexError: list index out of range? ?? ?2. xinbie的判斷那里,我知道是list和字符串不能比較,怎么改才對?
查看完整描述

1 回答

已采納
?
產品經理不是經理

TA貢獻481條經驗 獲得超143個贊

1、部分age沒有數據,爬取到的為空,列表里面為空。

2、把list的數據轉為字符串即可比較。''.join(list)即可將列表轉為字符串。

查看完整回答
反對 回復 2018-03-26
  • 錯過了年華
    錯過了年華
    不會,能把具體代碼寫出來?
  • 錯過了年華
    錯過了年華
    if xinbie == ['articleGender manIcon']: 原來直接寫成list也行。。。 還有一個問題就是怎么才能輸出age的值?
  • 產品經理不是經理
    產品經理不是經理
    就是有些age的值為空啊,你要單獨處理的嘛。你可以先把age[0]改成age,再打印就知道你哪兒寫得不嚴謹了。
  • 1 回答
  • 0 關注
  • 1765 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號