我看到很多Xpath答案,但没有CSS答案。我成功地提取了我需要的所有文字 - 但它完全被包裹了#39;标签,字体详细信息等。我在this网站上提取了一些角色说明。
我正在使用的代码改编自Scrapy教程 - 我想从网站上为每个角色提取所有与工作相关的文本:
import Control.Monad (ap, liftM)
import Control.Applicative (Alternative (..))
newtype Parser a = Parser
{ runParser :: String -> [(a, String)] }
instance Functor Parser where
fmap = liftM
instance Applicative Parser where
pure v = Parser $ \inp -> [(v, inp)]
(<*>) = ap
instance Monad Parser where
-- The next line isn't required for
-- recent GHC versions
-- return = pure
Parser m >>= f = Parser $ \s ->
[(r, s'') | (x, s') <- m s
, (r, s'') <- runParser (f r) s']
(+++) :: Parser a -> Parser a -> Parser a
p +++ q = Parser $ \inp -> case runParser p inp of
[] -> runParser q inp
[(v, out)] -> [(v, out)]
failure :: Parser a
failure = Parser $ \inp -> []
instance Alternative Parser where
(<|>) = (+++)
empty = failure
instance MonadPlus Parser
我对特定页面的结果包括所有文本,还包括html标记和元素,包括span,style,font-size。
如何使用CSS按照网站上的外观顺序获取干净的文字?理想情况下,我希望保留段落样式并最终将其传递到Excel / CSV中的一个单元格。
谢谢!
答案 0 :(得分:0)
如果css选择器正是您想要的,您可以使用w3lib中的remove_tags方法,但我不认为在您的情况下这是必要的,请尝试这样:
'role-description': extract_with_css('#ctl00_regionContent_lblJobDescription span *::text')