我遇到问题从网页上删除游戏名称 它返回一个空白数组..一旦名称被删除,我希望它被写入一个新创建的文本文件..我的代码应该在下面..它远未完成,但我确定我将需要一个While条件.. < / p>
def ScrapeK10():
siteToScrape = 'http://www.kiz10.com/new-games'
print '\n[!] Requesting Kiz10..'
kizReq = requests.get(siteToScrape)
print '\n[!] Scraping Newest Games...'
kizTree - html.fromstring(kizReq.content)
kizElement = kizTree.xpath('//strong[@class="bx-caption"]/text()')
print 'Latest Games : ', kizElement, '\n'
return
我遇到的问题是我得到一个空白数组,所以我不确定我是否真正正确地抓取网站甚至使用正确的xpath?
还有点新鲜......不想使用美丽的汤也不想使用Scapy ..
但是我的目标是在我给出的网页上抓取所有游戏名称,然后将它们写入新文件..
答案 0 :(得分:0)
你能使用正则表达式吗? 请注意,所有游戏名称都包含在名为“itemsGame”的JavaScript对象中。
使用正则表达式对其进行过滤,然后再次使用正则表达式来分割每一行。
这应该这样做
def main():
import re
import requests
url = "http://kiz10.com/index.php?page=newgames"
raw = requests.get(url).content
match = re.search("var itemsGame = \[(.*?)\];$", raw, re.M)
for line in re.findall('\[(.*?)\]', match.group(1)):
print(line.replace("'", "").split(",")[3].strip())
或者你可以从var itemsGame =调用字符串上的eval() 到下一个\ n角色。
显然,eval始终是危险的,从未真正推荐