摘要:爬蟲知識點同步滾動框架知識點粗解爬蟲和代理池項目配置文件爬蟲項目的配置文件。爬蟲項目的管道文件,用來對中的數(shù)據(jù)進行進一步的加工處理。
爬蟲知識點
同步滾動:
scrapy框架知識點 https://scrapy-chs.readthedoc...
1、ROBOTSTXT_OBEY = False 粗解
https://www.jianshu.com/p/19c1ea0d59c2
2、爬蟲-User-Agent和代理池
https://www.cnblogs.com/sunxiuwen/p/10112057.html
3、
scrapy項目配置文件:
scrapy.cfg:爬蟲項目的配置文件。
__init__.py:爬蟲項目的初始化文件,用來對項目做初始化工作。
items.py:爬蟲項目的數(shù)據(jù)容器文件,用來定義要獲取的數(shù)據(jù)。
1、pipelines.py:爬蟲項目的管道文件,用來對items中的數(shù)據(jù)進行進一步的加工處理。 2、scrapy的pipeline是一個非常重要的模塊,主要作用是將return的items寫入到數(shù)據(jù)庫、文件等持久化模塊
settings.py:爬蟲項目的設(shè)置文件,包含了爬蟲項目的設(shè)置信息。
middlewares.py:爬蟲項目的中間件文件,
4
使用anaconda prompt運行.py文件,執(zhí)行scrapy crwal xx指令時,xx是.py文件中給name賦的值
使用anaconda prompt運行.py文件,執(zhí)行scrapy crwal xx指令時,如果報錯說少了yy modules,直接輸入pip install yy執(zhí)行安裝包,不用在進入對應的項目目錄下
5、 https://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/tutorial.html?highlight=extract
xpath(): 傳入xpath表達式,返回該表達式所對應的所有節(jié)點的selector list列表 。
css(): 傳入CSS表達式,返回該表達式所對應的所有節(jié)點的selector list列表.
extract(): 序列化該節(jié)點為unicode字符串并返回list。
re(): 根據(jù)傳入的正則表達式對數(shù)據(jù)進行提取,返回unicode字符串list列表。
6、elastisearch查詢語句
https://segmentfault.com/q/1010000017553309/
7、
傳入xpath表達式,返回該表達式所對應的所有節(jié)點的selector list列表 extract(): 返回被選擇元素的unicode字符串8、yield
yield的作用 這里是在爬取完一頁的信息后,我們在當前頁面獲取到了下一頁的鏈接,然后通過 yield 發(fā)起請求,# 并且將 parse 自己作為回調(diào)函數(shù)來處理下一頁的響應 # https://www.jianshu.com/p/7c1a084853d8 yield Request(self.lrtsUrl + next_link, callback=self.parse, headers=headers) #獲取下一頁,parse是回調(diào)函數(shù)來處理下一頁的響應
9、meta scrapy的request的meta參數(shù)是什么意思?
https://blog.csdn.net/master_ning/article/details/80558985
python基礎(chǔ)知識點:
class:#創(chuàng)建類 類就是一個模板,模板里可以包含多個函數(shù),函數(shù)里實現(xiàn)一些功能 https://www.cnblogs.com/chengd/articles/7287528.html
def:#創(chuàng)建類中函數(shù)
pass:pass 不做任何事情,一般用做占位語句。
if name == "__main__":的作用
https://www.cnblogs.com/kex1n/p/5975575.html
5、python range() 函數(shù)可創(chuàng)建一個整數(shù)列表,一般用在 for 循環(huán)中。
函數(shù)語法
range(start, stop[, step])
6、Python len() 方法返回對象(字符、列表、元組等)長度或項目個數(shù)。
語法
len()方法語法:
len( s )
7、if not os.path.exists(self.bookname) :
報錯
1、UnicodeEncodeError: "gbk" codec can"t encode character "xXX" in position XX
錯誤原因:編碼問題
解決:
.py
import io
import os
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding="gb18030") #改變標準輸出的默認編碼
2、elasticsearch.exceptions.ConnectionError: ConnectionError(
錯誤原因:數(shù)據(jù)庫那邊的問題,導致連接失敗
3、IndexError: list index out of range
錯誤原因:數(shù)組有問題 https://blog.csdn.net/huacode...
4、爬取數(shù)據(jù)的時候爬到一般中斷,可以通過try expect來跨過去,繼續(xù)執(zhí)行程序
5、^ SyntaxError: (unicode error) "unicodeescape" codec can"t decode bytes in position 2-3: truncated UXXXXXXXX escape
解決辦法:https://www.cnblogs.com/hfdkd...
6、_compile(pattern, flags).findall(string) TypeError: cannot use a string pattern on a bytes-like
https://www.cnblogs.com/areyo...
要注意:findall()的參數(shù)需要加上decode("utf-8")
infor = p.text.strip().encode("utf-8").decode("utf-8") #此處用utf-8編碼,以免下面查找 ‘主演’下標報錯
ya = re.findall("[0-9]+.*/?", infor)[0] # re得到年份和地區(qū)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43780.html
摘要:爬蟲是我接觸計算機編程的入門。練練練本文推薦的資源就是以項目練習帶動爬蟲學習,囊括了大部分爬蟲工程師要求的知識點。拓展閱讀一文了解爬蟲與反爬蟲最后,請注意,爬蟲的工作機會相對較少。 爬蟲是我接觸計算機編程的入門。哥當年寫第一行代碼的時候別提有多痛苦。 本文旨在用一篇文章說透爬蟲如何自學可以達到找工作的要求。 爬蟲的學習就是跟著實際項目去學,每個項目會涉及到不同的知識點,項目做多了,自然...
摘要:爬蟲也可以稱為爬蟲不知從何時起,這門語言和爬蟲就像一對戀人,二者如膠似漆,形影不離,你中有我我中有你,一提起爬蟲,就會想到,一說起,就會想到人工智能和爬蟲所以,一般說爬蟲的時候,大部分程序員潛意識里都會聯(lián)想為爬蟲,為什么會這樣,我覺得有兩個 爬蟲也可以稱為Python爬蟲 不知從何時起,Python這門語言和爬蟲就像一對戀人,二者如膠似漆 ,形影不離,你中有我、我中有你,一提起爬蟲,就...
摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優(yōu)秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設(shè)計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數(shù)據(jù)結(jié)構(gòu)、語法...
閱讀 1205·2023-04-26 02:42
閱讀 1645·2021-11-12 10:36
閱讀 1812·2021-10-25 09:47
閱讀 1279·2021-08-18 10:22
閱讀 1818·2019-08-30 15:52
閱讀 1227·2019-08-30 10:54
閱讀 2646·2019-08-29 18:46
閱讀 3509·2019-08-26 18:27