国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

淺談python中爬蟲框架(talonspider)的介紹

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 14:23:52
文檔

淺談python中爬蟲框架(talonspider)的介紹

淺談python中爬蟲框架(talonspider)的介紹:本文給大家介紹的是使用python開發(fā)的爬蟲框架talonspider的簡單介紹以及使用方法,有需要的小伙伴可以參考下1.為什么寫這個?一些簡單的頁面,無需用比較大的框架來進行爬取,自己純手寫又比較麻煩因此針對這個需求寫了talonspider:1.針對單頁面的it
推薦度:
導讀淺談python中爬蟲框架(talonspider)的介紹:本文給大家介紹的是使用python開發(fā)的爬蟲框架talonspider的簡單介紹以及使用方法,有需要的小伙伴可以參考下1.為什么寫這個?一些簡單的頁面,無需用比較大的框架來進行爬取,自己純手寫又比較麻煩因此針對這個需求寫了talonspider:1.針對單頁面的it

本文給大家介紹的是使用python開發(fā)的爬蟲框架talonspider的簡單介紹以及使用方法,有需要的小伙伴可以參考下

1.為什么寫這個?

一些簡單的頁面,無需用比較大的框架來進行爬取,自己純手寫又比較麻煩

因此針對這個需求寫了talonspider:

?1.針對單頁面的item提取 - 具體介紹點這里
?2.spider模塊 - 具體介紹點這里

2.介紹&&使用

2.1.item

這個模塊是可以獨立使用的,對于一些請求比較簡單的網(wǎng)站(比如只需要get請求),單單只用這個模塊就可以快速地編寫出你想要的爬蟲,比如(以下使用python3,python2見examples目錄):

2.1.1.單頁面單目標

比如要獲取這個網(wǎng)址http://book.qidian.com/info/1004608738 的書籍信息,封面等信息,可直接這樣寫:

import time
from talonspider import Item, TextField, AttrField
from pprint import pprint

class TestSpider(Item):
 title = TextField(css_select='.book-info>h1>em')
 author = TextField(css_select='a.writer')
 cover = AttrField(css_select='a#bookImg>img', attr='src')

 def tal_title(self, title):
 return title

 def tal_cover(self, cover):
 return 'http:' + cover

if name == 'main':
 item_data = TestSpider.get_item(url='http://book.qidian.com/info/1004608738')
 pprint(item_data)

具體見qidian_details_by_item.py

2.1.1.單頁面多目標

比如獲取豆瓣250電影首頁展示的25部電影,這一個頁面有25個目標,可直接這樣寫:

from talonspider import Item, TextField, AttrField
from pprint import pprint

# 定義繼承自item的爬蟲類
class DoubanSpider(Item):
 target_item = TextField(css_select='p.item')
 title = TextField(css_select='span.title')
 cover = AttrField(css_select='p.pic>a>img', attr='src')
 abstract = TextField(css_select='span.inq')

 def tal_title(self, title):
 if isinstance(title, str):
 return title
 else:
 return ''.join([i.text.strip().replace('xa0', '') for i in title])

if name == 'main':
 items_data = DoubanSpider.get_items(url='movie.douban.com/top250')
 result = []
 for item in items_data:
 result.append({
 'title': item.title,
 'cover': item.cover,
 'abstract': item.abstract,
 })
 pprint(result)

具體見douban_page_by_item.py

2.2.spider

當需要爬取有層次的頁面時,比如爬取豆瓣250全部電影,這時候spider部分就派上了用場:

# !/usr/bin/env python
from talonspider import Spider, Item, TextField, AttrField, Request
from talonspider.utils import get_random_user_agent


# 定義繼承自item的爬蟲類
class DoubanItem(Item):
 target_item = TextField(css_select='p.item')
 title = TextField(css_select='span.title')
 cover = AttrField(css_select='p.pic>a>img', attr='src')
 abstract = TextField(css_select='span.inq')

 def tal_title(self, title):
 if isinstance(title, str):
 return title
 else:
 return ''.join([i.text.strip().replace('xa0', '') for i in title])


class DoubanSpider(Spider):
 # 定義起始url,必須
 start_urls = ['https://movie.douban.com/top250']
 # requests配置
 request_config = {
 'RETRIES': 3,
 'DELAY': 0,
 'TIMEOUT': 20
 }
 # 解析函數(shù) 必須有
 def parse(self, html):
 # 將html轉(zhuǎn)化為etree
 etree = self.e_html(html)
 # 提取目標值生成新的url
 pages = [i.get('href') for i in etree.cssselect('.paginator>a')]
 pages.insert(0, '?start=0&filter=')
 headers = {
 "User-Agent": get_random_user_agent()
 }
 for page in pages:
 url = self.start_urls[0] + page
 yield Request(url, request_config=self.request_config, headers=headers, callback=self.parse_item)

 def parse_item(self, html):
 items_data = DoubanItem.get_items(html=html)
 # result = []
 for item in items_data:
 # result.append({
 # 'title': item.title,
 # 'cover': item.cover,
 # 'abstract': item.abstract,
 # })
 # 保存
 with open('douban250.txt', 'a+') as f:
 f.writelines(item.title + '
')


if name == 'main':
 DoubanSpider.start()

控制臺:

/Users/howie/anaconda3/envs/work3/bin/python /Users/howie/Documents/programming/python/git/talonspider/examples/douban_page_by_spider.py
2017-06-07 23:17:30,346 - talonspider - INFO: talonspider started
2017-06-07 23:17:30,693 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250
2017-06-07 23:17:31,074 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=25&filter=
2017-06-07 23:17:31,416 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=50&filter=
2017-06-07 23:17:31,853 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=75&filter=
2017-06-07 23:17:32,523 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=100&filter=
2017-06-07 23:17:33,032 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=125&filter=
2017-06-07 23:17:33,537 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=150&filter=
2017-06-07 23:17:33,990 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=175&filter=
2017-06-07 23:17:34,406 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=200&filter=
2017-06-07 23:17:34,787 - talonspider_requests - INFO: GET a url: https://movie.douban.com/top250?start=225&filter=
2017-06-07 23:17:34,809 - talonspider - INFO: Time usage:0:00:04.462108

Process finished with exit code 0

此時當前目錄會生成douban250.txt,具體見douban_page_by_spider.py。

3.說明

學習之作,待完善的地方還有很多,歡迎提意見,項目地址talonspider。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

淺談python中爬蟲框架(talonspider)的介紹

淺談python中爬蟲框架(talonspider)的介紹:本文給大家介紹的是使用python開發(fā)的爬蟲框架talonspider的簡單介紹以及使用方法,有需要的小伙伴可以參考下1.為什么寫這個?一些簡單的頁面,無需用比較大的框架來進行爬取,自己純手寫又比較麻煩因此針對這個需求寫了talonspider:1.針對單頁面的it
推薦度:
標簽: 介紹 python 爬蟲
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产在线观看免费 | 国内精品久久久久激情影院 | 日韩视频亚洲 | 日韩性视频 | 国产一级精品视频 | 久久久一区二区三区不卡 | 国内偷拍第一页 | 欧美日韩精品一区二区三区视频在线 | 欧美日韩国产在线观看 | 日韩国产欧美视频 | 免费国产小视频在线观看 | 福利视频一区二区三区 | 91久久精品国产免费一区 | 欧美精品一区二区在线观看 | 看全色黄大色黄女片爽毛片 | 亚洲图片在线观看 | 黄a毛片| 色精品一区二区三区 | 91久久国产综合精品女同国语 | 日本丶国产丶欧美色综合 | 激性欧美激情在线aa | 欧美精品首页 | 国产国拍亚洲精品永久不卡 | 亚洲伊人电影 | 亚洲黄色一区二区 | 在线观看欧美精品 | 韩国精品一区二区久久 | 久久99精品国产麻豆不卡 | www久久com| 欧美日韩一区二区三区在线播放 | 久操久热| 日韩一区二区视频 | 在线免费视频国产 | 欧美资源在线 | 欧美在线亚洲 | 成人久久久观看免费毛片 | 中文亚洲欧美日韩无线码 | 久久伊人一区二区三区四区 | 色综合91久久精品中文字幕 | 日韩精品亚洲电影天堂 | 成人国产激情福利久久精品 |