新創作,爬豆瓣的資訊(2)

2021-09-26 23:34:42 字數 1910 閱讀 6560

1.我加了檔案的儲存,說實話,我沒看懂這段

total=html.xpath('//*[@id="content"]/div/div[1]/ol/li')#這是每部電影的總和

for div in total:

names=div.xpath('./div/div[2]/div[1]/a/span[1]/text()')[0]#電影名字,#電影名字,這裡最後的「」可以去掉列表的外框,好看一點,雖說我是這麼理解的。

scores=div.xpath('./div/div[2]/div[2]/div/span[2]/text()')[0]#電影評分

2.我加了很多**,用來改進風格,讓結果看起來更加清晰,明朗。但是換來的就是多次的檔案操作,我知道這肯定會拖慢執行速度,但是我這是小工程,無所謂。

3.我加的那個檔案操作是以a的模式,也就是說是追加的。首先我必須這樣寫(在這樣的框架下面),因為我用w的話,在迴圈體內會導致無限的覆蓋,從而導致最後的結果只有乙個。這樣做的最終缺點是 使用者在二次或者更多地執行這個檔案的時候會附加前面一次的結果導致檔案越來越大,重複的內容越來越多。

我希望的是當使用者執行第二遍或者更多遍的時候,結果總是執行時的那個,不多也不少。這樣最好

下面放**

#project:爬豆瓣的top250電影名字和評分

#time:2019.9.8

#author:小白之神111

#question:有待改進

import requests

from lxml import etree

import os

import time

headers=

#偽造訪問頭部

for i in range(3):

url="".format(i*25)#具體的**

response=requests.get(url=url,headers=headers).text #傳送get請求,text格式

html=etree.html(response) #格式化

#etree.tostring(html,encoding='utf-8').decode('utf-8')

total=html.xpath('//*[@id="content"]/div/div[1]/ol/li')#這是每部電影的總和

for div in total:

names=div.xpath('./div/div[2]/div[1]/a/span[1]/text()')[0]#電影名字,#電影名字,這裡最後的「」可以去掉列表的外框,好看一點,雖說我是這麼理解的。

scores=div.xpath('./div/div[2]/div[2]/div/span[2]/text()')[0]#電影評分

with open("電影.txt","a+",encoding="utf-8") as f:

f.write(" "+names+" ")

f.write(scores+"\n\n")

print("{} {}".format(names,scores))#列印

print("\n*************************=\n\n")

with open("電影.txt","a+",encoding="utf-8") as f:

f.write("\n*************************=\n\n")

time.sleep(2)#時間2秒

print("***************完成!***************")

with open("電影.txt","a+",encoding="utf-8") as f:

f.write("\n\n***************執行結束,若開啟了下一次,下一次的內容就在下面***************\n\n")

爬取豆瓣網電影資訊

coding utf 8 import urllib2 import bs4 from bs4 import beautifulsoup 爬取豆瓣網電影簡介,包括電影名,導演,評分以及介紹等 class dbtop def init self self.usr agent mozilla 5.0 w...

python爬蟲爬取豆瓣電影資訊

我們準備使用python的requests和lxml庫,直接安裝完之後開始操作 目標爬取肖申克救贖資訊 傳送門 導入庫import requests from lxml import etree 給出鏈結 url 獲取網頁html前端 一行搞定,在requests中已經封裝好了 data reque...

控制流程,爬取豆瓣電影資訊

if 條件判斷 if 條件成立,執行 1,條件不成立,執行 2 1else 2age 19 if age 18 print 你已經成年了!雙分支結構 age 19 if age 18 print 成年 else print 未成年 如果 成績 90,列印 優秀 如果 成績 80 並且 成績 90,列...