Python爬蟲練習第二章 對乙個不是

2021-07-26 04:47:08 字數 2925 閱讀 1780

通過這次練習,讓我明白了哪兒不足,好多語法用的不熟練導致

比如 for i in range 很常用,在乙個文字中迴圈呼叫每行指令的話

我的思路是建立乙個函式 然後用for i in range迴圈呼叫 如

我之前使用queue函庫,不使用到多執行緒,所以比較雞肋。

於是放棄了用queue

還有就是 read(),readlines() 的使用

read()是按照原格式直接閱讀,readlines()是以字串形式全部閱讀

對於要迴圈呼叫都是用的第二個,【而且!!!一定要記得strip(『\n』)】就是刪除換行,不然迴圈讀取的時候回出現字尾加上了\n  

從而無法得到正確的值。

正所謂練劍千日,得心應手,通過這次練習我發現我應該多敲敲**多多練習。

貼上第一部分源**

#coding=utf-8

import re

import requests

import queue

import time

import os

for i in range(1,454):

url=''%i

ye = requests.get(url=url,headers=headeraa)

yem = re.findall('

通過翻頁可以知道不同頁面是/目錄/1.htm 

2.htm 

以此類推

所以用for i in range(1,300),迴圈300次

將第乙個**貼上去,用%d 匹配 當前次數

最後將結果儲存下來

第二部分就是逐次抓取了,關於這部分我首先是想用queue庫,後來發現沒這必要,還是用for i in range

貼上第二部分第一次想法源**

# coding=utf-8

import requests

import re

import time

import queue

import threading

q = queue.queue()

threading_num = 5 #執行緒數

f = open("mulu.txt", "r") 

while true: 

line = f.readline() 

if line: 

pass 

c = "%s"%line

print c

else: 

break

f.close()

q.put(c)

def start():

while not q.empty():

cc = q.get()

try:

url = "%s"�

print url

a = requests.get(url=url,headers=headeraa)

b = re.findall('

',a.content)

print "提取當前頁面的原始位址,請稍等..."

time.sleep(6)

print "提取成功,正在寫出目錄~"

print "發現乙個異常,程式開始清理異常"

time.sleep(3)

for i in range(threading_num):

t = threading.thread(target=start)

t.start()

發現不是很好用

於是重寫一次

#coding = utf-8

import requests

import re

import time

f = open('mulu.txt','r')

ff = f.readlines()

f.close()

def xiazai():

print "當前頁面為:" + urlx

a = requests.get(url=urlx,headers=headeraa)

b = re.findall('',a.content)

c = re.findall('

',a.content)

print "提取當前頁面的原始位址,請稍等..."

time.sleep(2)

print "提取完畢,正在寫出目錄"

就是我最終的想法,最後把兩個合在一起,效果下圖。

第二章 練習。

1.正因子問題。include include int main printf d count return 0 注意 if if 如果是 if n i 0 count if i n i count 會比正確結果多一。可以用以下程式檢驗,看中間結果。include include int main ...

第二章練習

2 2 多條簡單訊息 將一條訊息儲存到變數中,將其列印出來 再將變數的值修改為一條新訊息,並將其列印出來。message this is a string.print message this is a string.message this is another string.print mess...

第二章練習

1 請用 實現 利用下劃線將列表的每乙個元素拼接成字串,li alex eric rain 該題目主要是考的字串的拼接方法,jion方法,s li alex eric rain s jion li 2 查詢列表中元素,移除每個元素的空格,並查詢以a或a開頭並且以c結尾的所有元素。li alec ar...