連續做了一周的爬蟲了,但是都是簡單的那種,簡單的總結下,後面有時間在寫個工具。
2.續爬,爬蟲不一的能一次就吧整個**就能爬下來,要設在分析,增加續爬功能是有必要的。
3.爬取過程中遇到的問題。
1)我是使用的bs4進行xml解析的,由於每個節點屬性不完全相同,當統一使用乙個方法訪問節點屬性的時候一定要加try,防止程式意外中斷。
2)在使用python語言的時候,為了安全,要注意函式的返回值,特別是型別判斷。
3)網頁抓取要加try,動態資料型別也盡量加try
4.爬取過程中的關鍵語句
dir_name= '.'
def download_file(url, file_name):
if not os.access(dir_name, os.f_ok):
os.mkdir( dir_name, 0o777 )
file_name=file_name.replace('/','-')
tmp = os.path.join(dir_name, file_name)
if os.access(tmp, os.f_ok):
return
f = urllib.request.urlopen(url)
data = f.read()
with open(tmp, "wb+") as code:
code.write(data)
#偽裝瀏覽器獲取網頁,當時有個**弄不下來,在乙個哥們拿去粘的這個原始碼,我稍稍做了下修改
#直接獲取網頁
def get_html_method2(url):
html = ''
i = 5
while(i):
try:
response = urllib.request.urlopen(url,timeout=3)
html = response.read().decode('utf-8')
return html
except exception as e:
i = i -1
logger.debug('['+str(e)+']'+url)
print ('urlerror: all times is failed ' )
return ''
#網頁解析
html_page = get_html_method2(page_url)
html_soup = bs4.beautifulsoup(html_page, 'lxml')
item_name = html_soup.select('ul[class="list_list font14"]')
table_thead_item = table_item[0].select('thead')
#正規表示式
matchobj = re.search( r'\/uploadfiles\/\d\/\d\/\d\.(\w)$', a_href, re.m|re.i)
#csv的操作
cvs_filename = dir_name+'_table.csv'
if os.access(cvs_filename,os.f_ok):
csvfile = open(cvs_filename, 'a+', newline='')
writer = csv.dictwriter(csvfile, fieldnames=fieldnames)
else:
csvfile = open(cvs_filename, 'a+', newline='')
writer = csv.dictwriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({fieldnames[0]:list_data[0])
「黑客」入門 爬蟲scrapy初體驗
歡迎關注,敬請點讚!pip install scrapy 需要在專案根目錄下,如d python spider 執行 scrapy startproject 專案名 如 lab d python spider scrapy startproject lab 進入專案內 cd 專案名,d python...
爬蟲利器初體驗
scrapy 資料流 scrapy 元件 爬取豆瓣電影 top250 前言為什麼要學 scrapy 呢?看下圖,就清楚了。很多招聘要求都有 scrapy,主要是因為 scrapy 確實很強。那到底強在 呢?請在文中找答案。scrapy 資料流 首先我們先來學習一下 scrapy 的工作流程。scra...
scrapy之爬蟲初體驗
本篇文章主要將怎樣建立乙個scrapy專案,以及完成第乙個scrapy爬蟲專案。首先是安裝scrapy模組,有很多原因都能導致scrapy模組安裝失敗,網上有很多教程讓怎樣安裝scrapy。親測比較有效的方法使用whl檔案安裝。不過有小夥伴也可以嘗試直接使用pip install scrapy命令進...