HTML刮使用LXML
我使用lxml
HTML刮使用LXML
这是一个职位
<article id="post-4855" class="post-4855 post type-post status-publish format-standard hentry category-uncategorized">
<header class="entry-header">
<h1 class="entry-title"><a href="http://aitplacements.com/uncategorized/cybage/" rel="bookmark">Cybage..</a></h1>
<div class="entry-meta">
<span class="byline"> Posted by <span class="author vcard"><a class="url fn n" href="http://aitplacements.com/author/tpoait/">TPO</a></span></span><span class="posted-on"> on <a href="http://aitplacements.com/uncategorized/cybage/" rel="bookmark"><time class="entry-date published updated" datetime="2017-09-13T11:02:32+00:00">September 13, 2017</time></a></span><span class="comments-link"> with <a href="http://aitplacements.com/uncategorized/cybage/#respond">0 Comment</a></span> </div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-content">
<p>cybage placement details shared <a href="http://aitplacements.com/uncategorized/cybage/" class="read-more">READ MORE</a></p>
</div><!-- .entry-content -->
的检查元素对于每一个这样的帖子,我想提取标题,内容数据报废发布和发布时间。
例如在上面,详细情况将在
{title : "Cybage..",
post : "cybage placement details shared"
datetime="2017-09-13T11:02:32+00:00"
}
直到现在什么,我能够实现: 网站需要登录,我在这样做,全成。
用于提取信息:
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)
Chrome/42.0.2311.90'}
url = 'http://aitplacements.com/news/'
page = requests.get(url,headers=headers)
doc = html.fromstring(page.content)
#print doC# it prints <Element html at 0x7f59c38d2260>
raw_title = doc.xpath('//h1[@class="entry-title"]/a/@href/text()')
print raw_title
的raw_title给空值[]
?
我在做什么错了?
@href
指href
属性的值:
In [14]: doc.xpath('//h1[@class="entry-title"]/a/@href')
Out[14]: ['http://aitplacements.com/uncategorized/cybage/']
您希望<a>
元素的文本,而不是:
In [16]: doc.xpath('//h1[@class="entry-title"]/a/text()')
Out[16]: ['Cybage..']
因此,使用
raw_title = doc.xpath('//h1[@class="entry-title"]/a/text()')
if len(raw_title) > 0:
raw_title = raw_title[0]
else:
# handle the case of missing title
raise ValueError('Missing title')
为什么我得到空'raw_title',文档确实会提取页面? –
如果您不确定'doc'解析了什么,请打印出'LH.tostring(doc,pretty_print = True)'(或将其写入文件并在其中检查)。你得到一个空的'raw_title'的原因是'a/@ href/text()'正在寻找附加到'href'属性的文本。空无一人。该文本附在''元素上。 – unutbu
问题是我再次退出,解决了问题 –
你应该采取看看[美丽的汤](https://www.crummy.com/softw是/ BeautifulSoup/BS4/DOC /)。这对你的需求很好。或者,如果你需要更先进的东西(例如蜘蛛),也可以使用scrapy。 – floatingpurr
我得到了空值,因为我正在注销,修复了问题 –