因為工作上對於資料的需要,所以這段時間一直在學習python和scrapy框架,下面貼上乙個簡單的python**爬蟲,可能**風格有點low,見諒。
#-*-coding:utf-8-*-
import codecs
import urllib
import urllib2
import re
import json
import time
from lxml import etree
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
reload(sys)
sys.setdefaultencoding(defaultencoding)
rooturl=''
#解析頁面的方法,傳入需要解析的頁碼,返回頁面內容
def posthtmlcontent(pagenum):
#因為頁碼為1時和其他頁碼訪問的頁面鏈結不同,所以新增了乙個簡單的判斷
if pagenum == 1:
rooturl =''
else:
rooturl =''
#頁面需要使用post請求
req = urllib2.request(rooturl.encode('utf8'),urllib.urlencode())
time.sleep(1)
htmlcontent = urllib2.urlopen(req,timeout=5).read()
return htmlcontent
rooturl1 = rooturl[0:rooturl.rfind("/")-4]
print rooturl1
htmlcontent = posthtmlcontent(5)
tree=etree.html(htmlcontent)
wenzhangurls=tree.xpath(u"//ul[
@class
= 'fd-notice-data']/li/a/@href")
#列印出當前頁面每個文章的鏈結
print wenzhangurls
for wenzhangurl in wenzhangurls:
pageurl = rooturl1+wenzhangurl.lstrip()
print "pageurl------->"+pageurl
page = urllib2.urlopen(pageurl,timeout=5).read()
time.sleep(2)
tree=etree.html(page)
title = tree.xpath(u"//h1[@class ='fd-content-title']/text()")
content = tree.xpath(u"//span/text()")
subtime = tree.xpath(u"//p[@class = 'fd-content-subtitle']/text()")
title = ''.join(title).strip()
content = ''.join(content).strip()
subtime = ''.join(subtime).strip()
pt = str(subtime).split()
# print page
#分別列印文章標題,內容,以及時間
print title
print content
print pt[1]
這只是乙個在編寫scrapy爬蟲前的測試**,因為時間有限,後續還將會繼續放上這個的scrapy**。
使用python實現簡單爬蟲
近日學習了python語言,簡單實現了乙個爬蟲,爬取了慕課網課程簡介上的,並儲存到本地。以下是實驗 coding utf 8 spyder editor import re import os import urllib.request 在python3.6環境中實現 f soure urllib....
使用python實現簡單爬蟲
管理待抓取的url集合和已抓取的url,防止重複抓取,防止死迴圈 功能列表1 判斷新新增url是否在容器中 2 向管理器新增新url 3 判斷容器是否為空 4 將已爬取url移動到已爬取集合 5 獲取待爬取url實現方式1 使用set 自動去除重複專案 2 使用關聯式資料庫 mysql 3 使用快取...
Python實現簡單爬蟲
簡單爬蟲構架 時序圖 管理待抓取url集合和已抓取url集合 通過兩個列表 已抓取url列表,未抓取url的列表 防止重複抓取 防止迴圈抓取 request.add header user agent mozilla 5.0 偽裝成火狐瀏覽器 urllib2.install opener opene...