Python面試題之爬蟲(基礎模組)

2021-10-04 12:12:17 字數 2588 閱讀 4509

知識點:

python自帶:urllib、urllib2,第三方:requests

目前使用requests和scrapy框架比較多,問到自帶庫的比較少,一般了解就可以,主要是講requests

response.content返回的是bytes型別(獲取,檔案)。

設定請求不用ssl證書驗證

設定超時

配合狀態碼判斷是否請求成功

import requests

from bs4 import beautifulsoup

# 目標url

url =

''headers =

#翻頁操作

for i in

range(1

,10000):

url_i =

'/{}//0/0/2/2.html'

.format

(i) response_i = requests.get(url_i, headers=headers)

.text

# 判斷最後一頁

if response_i is

none

:break

# 獲取第i個頁面的url、response類、html、soup,以及該頁面所有對應的src

soup_i = beautifulsoup(response_i,

'lxml'

) data_list = soup_i.find(

'div',)

# 二次篩選,獲取所有a標籤

for i in data_list.find_all(

'a')

: book_url =

''+ i[

'href'

]#print(book_url)

# 再次請求獲取**內容頁

book_content = requests.get(book_url)

.text

# print(book_content)

soup = beautifulsoup(book_content,

'lxml'

)# **名稱

title = soup.find(

'h2',)

.text

#封面#cover = soup.find('img',src = re.compile(r'^https://bfimg'))

src = soup.find_all(

'img'

) cover = src[0]

.get(

'data-original'

)# 作者

author = soup.find(

'span',)

.text

# 章節數

chapter_cnt = soup.find(

'pan',)

.text

# 字數

word_cnt = soup.find(

'span',)

.text

# 是否已完成,0**中,1已完結

is_finished = soup.find(

'span',)

.text

if is_finished ==

'完本'

: is_finished =

'1'else

: is_finished =

'0'# 所屬分類,多個用,分開

cate_ids = soup.find(

'p',

).text

cate_ids_list = cate_ids.split(

) cate_ids = cate_ids_list[0:

-1]for i in cate_ids:

cate_ids = i

# 介紹

desc = soup.find(

'div',)

.text

# 新增時間

create_time =

'0'# 更新時間

update_time = soup.find(

'div',)

.text

# print(cate_ids)

#把一本書的資料儲存到乙個列表中

book_list =

print

(book_list)

#列表轉為字串寫入檔案中

book_str =

' '.join(book_list)

#儲存資料

with

open

('shanhu.txt'

,'a'

,encoding=

'utf-8'

)as f:

f.write(book_str)

f.write(

'\r\n'

)

真實 Python 爬蟲面試題

閱讀文字大概需要 5 分鐘。就在昨天我面試了,來到上海之後面試的第一家公司,面試過程挺順利,不出意外今天下午就會收到 offer。面試完之後,我走在路上,整個人都是在傻笑的狀態,路人一臉關愛智障的眼神,但我還是非常的開心。自己一路自學過來,不知道遇到多少 bug,不知道有多少個深夜,還在敲 不知道有...

真實 Python 爬蟲面試題

閱讀文字大概需要 5 分鐘。就在昨天我面試了,來到上海之後面試的第一家公司,面試過程挺順利,不出意外今天下午就會收到 offer。面試完之後,我走在路上,整個人都是在傻笑的狀態,路人一臉關愛智障的眼神,但我還是非常的開心。自己一路自學過來,不知道遇到多少 bug,不知道有多少個深夜,還在敲 不知道有...

python基礎面試題(1)

一.基礎面試題 1.中要修改不可變資料會出現什麼問題,丟擲什麼異常?答 不能正常執行,會丟擲typeerror型別的錯誤 2.a 1,b 2 不使用中間變數互動a,b的值?答 第一種方法 a a b b a b a a b 第二中方法 a,b b,a 第三種方法 a a b b b a a a b ...