我正在尝试制作一个python脚本,用我所拥有的有限知识从一个网页中刮取特定的信息。但我想我有限的知识是不够的。我需要提取7-8条信息。标签如下-
1
<a class="ui-magnifier-glass" href="here goes the link that i want to extract" data-spm-anchor-id="0.0.0.0" style="width: 258px; height: 258px; position: absolute; left: -1px; top: -1px; display: none;"></a>
<a href="link to extract" title="title to extract" rel="category tag" data-spm-anchor-id="0.0.0.0">or maybe this word instead of title</a>
我已使用此代码开始
url = raw_input('url : ')
page = requests.get(url)
tree = html.fromstring(page.text)
productname = tree.xpath('//h1[@class="product-name"]/text()')
price = tree.xpath('//span[@id="sku-discount-price"]/text()')
print '\n' + productname[0]
print '\n' + price[0]
您可以使用lxml和csv模块来执行您想要的操作。lxml支持xpath表达式来选择所需的元素。
from lxml import etree
from StringIO import StringIO
from csv import DictWriter
f= StringIO('''
<html><body>
<a class="ui-magnifier-glass"
href="here goes the link that i want to extract"
data-spm-anchor-id="0.0.0.0"
style="width: 258px; height: 258px; position: absolute; left: -1px; top: -1px; display: none;"
></a>
<a href="link to extract"
title="title to extract"
rel="category tag"
data-spm-anchor-id="0.0.0.0"
>or maybe this word instead of title</a>
</body></html>
''')
doc = etree.parse(f)
data=[]
# Get all links with data-spm-anchor-id="0.0.0.0"
r = doc.xpath('//a[@data-spm-anchor-id="0.0.0.0"]')
# Iterate thru each element containing an <a></a> tag element
for elem in r:
# You can access the attributes with get
link=elem.get('href')
title=elem.get('title')
# and the text inside the tag is accessable with text
text=elem.text
data.append({
'link': link,
'title': title,
'text': text
})
with open('file.csv', 'w') as csvfile:
fieldnames=['link', 'title', 'text']
writer = DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for row in data:
writer.writerow(row)
问题内容: 使用Java,如何从给定的网页中提取所有链接? 问题答案: 将Java文件下载为纯文本/ html格式,并通过Jsoup或 html clean传递,两者相似,甚至可以用于解析格式错误的html 4.0语法,然后可以使用流行的HTML DOM解析方法,例如getElementsByName(“ a”)或在jsoup中它甚至很酷,您只需使用 并找到所有链接,然后使用 取自http://j
我想提取新闻文章在网站上发表的日期。对于某些网站,我有确切的html元素,其中日期/时间为(div,p,time),但在某些网站上,我没有: 以下是一些网站(德国网站)的链接: (2020年11月3日)http://www.linden.ch/de/aktuelles/aktuellesinformationen/?action=showinfo (2020年12月1日)http://www.re
问题内容: 下面的代码没有从网址中获取任何HTML 我知道URLConnection方法openConnection()和URL类方法openStream(),但我不想使用这些方法。我只想知道为什么我不使用Socket类获得任何输入,但是我却使用其他方法获得了输入。 问题答案: 您没有发送任何请求。HTTP是一个请求-响应协议:您需要发送一个请求,告知Web服务器要检索的URL,然后它将向您发送该
打印出以下内容 我如何只提取第6行,即并将其放入一个数组中,其中每个元素都是逗号前的单词(例如:[0]=Alex,[1]=Cook等)
我有一个Excel工作表,其中一栏填充了专利号。我需要提取每个相应专利的标题,并将其放在专利号旁边的单元格中。因此,代码应执行以下操作: 访问espacenet.com并打开需要名称的专利号。 获取标题。 将其放在所需单元格的Excel工作表中。 这是一个完美适用于第一个专利号的代码,但在这之后会立即出现错误。错误显示:“运行时错误'-2147417848(80010108)': 自动化错误调用的
问题内容: 我的Python代码处理了以下文本: 您能建议我如何从内部提取数据吗?我的想法是将其放入具有以下格式的CSV文件中:。 我希望没有正则表达式会很困难,但实际上我仍然在反对正则表达式。 我或多或少地通过以下方式使用了代码: 理想情况下是将每个td竞争以某个数组进行竞争。上面的HTML是python的结果。 问题答案: 获取BeautifulSoup并使用它。这很棒。