1. 程式人生 > >Scrapy:抓取html所有特定元素的兩個方法

Scrapy:抓取html所有特定元素的兩個方法

比如要獲取所有class=test的div元素,

1. 用Scrapy,示範程式碼:

    def parse(self, response):
        hxs = Selector(response)
        items = []

        divs = hxs.xpath('//div[@class="test"]')

2. 用lxml,示範程式碼:
from lxml import etree
#import mechanize
import lxml.html
#import cookielib

#br = mechanize.Browser()
#r = br.open('http://yourdomain.com')
#html = br.response().read()
#root = lxml.html.fromstring(html)
#divs = root.xpath("//div[@class='test']")
hparser = etree.HTMLParser(encoding='utf-8') #for avoiding unicode codec problems
htree = etree.parse('http://yourdomain.com',hparser)
htree.write('/tmp/bi.html') 
divs= htree.xpath("//div[@class='test']")

要獲取class包含test的所有div,比如<div class="test website"></div>

把上述xpath的引數修改為 "div[contains(@class,'test')]" 即可。

Scrapy內部解析引擎也是用的lxml。

參考連結:

by iefreer

相關推薦

Scrapy:html所有特定元素方法

比如要獲取所有class=test的div元素,1. 用Scrapy,示範程式碼: def parse(self, response): hxs = Selector(response) items = [] divs

一個站點的誕生02--用Scrapy數據

項目 selector 默認安裝 找不到 shang foo 術語 替換 產生 假設想抓數據,就須要有爬蟲程序,業內叫crawler或者spider。 有各種語言版本號的開源爬蟲。c++, Java, php,在github上搜一下,以"spider c++"為k

ScrapyQuotes to Scrape

same iss ict -a json 一個個 doc common lang # 爬蟲主程序quotes.py # -*- coding: utf-8 -*- import scrapy from quotetutorial.items import QuoteIte

scrapy免費代理IP

代理 爬蟲 python scrapy 1、創建項目scrapy startproject getProxy2、創建spider文件,抓取www.proxy360.cn www.xicidaili.com兩個代理網站內容cd項目的spiders模塊下執行scrapy genspider pro

Scrapy動態網頁

都是 搜索 華盛頓 etime 觀察 review llb 得到 我們 動態網頁指幾種可能: 1)需要用戶交互,如常見的登錄操作; 2)網頁通過JS/ AJAX動態生成,如一個html裏有<div id="test"></div>,通過JS生成&l

Python使用lxml模塊和Requests模塊HTML頁面的教程

有時 oms 世界 tel 4.0 取出 itl imp syntax Web抓取Web站點使用HTML描述,這意味著每個web頁面是一個結構化的文檔。有時從中 獲取數據同時保持它的結構是有用的。web站點不總是以容易處理的格式, 如 csv 或者 json 提供它們的數據

Scrapy起點中文網排行榜

pro 起點 type [1] -m += 描述 頁面 名稱 項目名稱:qidian 項目描述:利用scrapy抓取七點中文網的“完本榜”總榜的500本小說,抓取內容包括:小說名稱,作者,類別,然後保存為CSV文件 目標URL:https://www.qidian.com/

scrapy某些樣式的博客園博客信息

mongo from split yield 標簽 col chrome fin afa 測試過很多樣式的博客園,就發現長書這樣的也就是我的博客這樣的抓取不了,標簽不一樣。其他的只需要把bky.py下的user的值即‘username’改為要抓取的用戶的用戶名即可,如: u

Scrapy 股票行情

安裝 Coding 環境 tps .org mat 等價 node als 安裝scrapy會出現錯誤,我們選擇anaconda3作為編譯環境,搜索scrapy安裝(有錯誤自查) 創建scrapy爬蟲項目:   調出cmd,到相應目錄:輸入: scrapy startpr

python3 + scrapy boss直聘崗位

前言:本文為記錄工程實現過程,會引用其他文章,如果又不清晰的地方可以檢視原文章。本文主旨在於記錄,所以部分作者瞭解的部分可能不會介紹而直接操作,如果有疑問請留言或者直接使用搜索引擎。 引用: windows安裝scrapy 建立第一個scrapy工程 一、安裝scrapy 管理員模式開啟power

Scrapy入門例項(使用Scrapy豆瓣電影top250榜單)

專案地址:https://github.com/yuanfuzhi/ScrapyDemo.git 一  Scrapy介紹與安裝 1,  Scrapy介紹 Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架。可以應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中

使用Scrapy數據

元素 www. ace 任務 onf 目錄 mod 模塊 獲得 轉載:http://blog.javachen.com/2014/05/24/using-scrapy-to-cralw-data.html Scrapy是Python開發的一個快速,高層次的屏幕抓取和web抓

scrapy——知乎

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

scrapy拉勾網職位信息(一)——scrapy初識及lagou爬蟲項目建立

報錯 中間鍵 方式 set 分享圖片 生成 pytho 薪酬 color 本次以scrapy抓取拉勾網職位信息作為scrapy學習的一個實戰演練 python版本:3.7.1 框架:scrapy(pip直接安裝可能會報錯,如果是vc++環境不滿足,建議直接安裝一個visua

scrapy拉勾網職位資訊(一)——scrapy初識及lagou爬蟲專案建立

本次以scrapy抓取拉勾網職位資訊作為scrapy學習的一個實戰演練 python版本:3.7.1 框架:scrapy(pip直接安裝可能會報錯,如果是vc++環境不滿足,建議直接安裝一個visual studio一勞永逸,如果報錯缺少前置依賴,就先安裝依賴)     本篇

scrapy拉勾網職位資訊(四)——對欄位進行提取

上一篇中已經分析了詳情頁的url規則,並且對items.py檔案進行了編寫,定義了我們需要提取的欄位,本篇將具體的items欄位提取出來 這裡主要是涉及到選擇器的一些用法,如果不是很熟,可以參考:scrapy選擇器的使用   依舊是在lagou_c.py檔案中編寫程式碼 首先是匯入Lag

scrapy 拉鉤 ajax

# -*- coding: utf-8 -*- import scrapy from LagouSpider.items import LagouspiderItem import json class LagouSpider(scrapy.Spider): na

爬蟲進階:Scrapyboss直聘、拉勾心得經驗

關於使用Scrapy的體會,最明顯的感受就是這種模板化、工程化的腳手架體系,可以說是拿來即可開箱便用,大多僅需按一定的規則套路配置,剩下的就是專注於編寫跟爬蟲業務有關的程式碼。絕大多數的反反爬蟲策略,大多有以下幾種: 忽略robots.txt協議 新增隨機請求

scrapygithub使用者郵箱功能的實現

實現的流程大概是這樣: 1.訪問github每日精選專案 https://github.com/trending?since=daily 2.使用selenium或requests完成登入操作 3.檢視每個專案Star的使用者列表 4.遍歷所有使用者,訪問使用

Scrapy的中文字元匯出到csv中出現亂碼

背景 按照這篇文章學些Scrapy框架,爬取豆瓣電影Top250的資訊,將資訊匯入到本地csv檔案時,由於電影名稱是中文,儲存時出現了亂碼。 解決辦法 在setting檔案中加入這樣一行語句: FEED_EXPORT_ENCODING = ‘utf-8-sig’ 儲存se