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

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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)的介紹

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

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

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

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

1.為什么寫這個?

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

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

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

2.介紹&&使用

2.1.item

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

2.1.1.單頁面單目標

比如要獲取這個網址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
 }
 # 解析函數 必須有
 def parse(self, html):
 # 將html轉化為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。

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

文檔

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

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

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美 日韩 国产 色 欧美 日韩 亚洲另类专区 | 日韩欧美视频一区二区三区 | 国产欧美日韩在线不卡第一页 | 国产亚洲精品va在线 | 91aaa在线观看 | 欧美亚洲一区二区三区在线 | 国产区第一页 | 日韩欧美亚洲综合 | 欧美日韩综合视频 | 欧美国产日韩一区二区三区 | 日韩一区二区免费视频 | 影音先锋在线视频 | 欧美性猛交一区二区三区精品 | 国产成人不卡亚洲精品91 | 韩日视频在线 | 亚洲一级二级 | 国产欧美久久久精品影院 | 亚洲欧美综合 | 免费一区二区视频 | 欧美日韩欧美 | 伊人中文 | 在线国产观看 | 亚洲视频免费观看 | 久久大陆| 亚洲欧美日韩高清一区二区一 | 国内一区二区三区精品视频 | 亚洲欧美日韩国产综合高清 | 欧美日韩亚洲一区二区三区 | 亚洲欧洲免费 | 日韩毛片大全 | 中文日韩欧美 | 日韩欧美小视频 | 制服丝袜一区 | 久久er99| 成人欧美精品久久久久影院 | 亚洲欧美日韩高清中文在线 | 欧美第3页 | 国产区第一页 | 亚洲欧美日韩另类精品一区二区三区 | 国产亚洲一欧美一区二区三区 | 中文字幕国产欧美 |