爬取目标URL:http://wy.hao123.com/top
开发环境:
- PyCharm 2019.2.3
- Python3.6
- 火狐浏览器
使用的三方库:
执行结果
开始
抓取网页
打开火狐浏览器,输入地址 http://wy.hao123.com/top ;
按F12功能键,启动调试功能;
通过分析使用下面的xpath代码可以获取到想要的数据
"//div[@class='list1 margin-right']|//div[@class='list1 ']"
编写爬虫代码
spider_hao123_01.py
"""
爬取hao123网站的网络游戏排行榜
http://wy.hao123.com/top
"""
import requests
from lxml import etree
def load_context():
""" 获取http://wy.hao123.com/top网页内容 """
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0'
}
url = "http://wy.hao123.com/top"
rsp_ctx = requests.get(url, headers=headers)
return rsp_ctx.text
def parse_context(c):
html = etree.HTML(c)
divs = html.xpath("//div[@class='list1 margin-right']|//div[@class='list1 ']")
with open('./hao123_wy_top.txt', 'w') as f:
for div in divs:
title = div.xpath("./div[@class='tlt']")[0].text
f.write(title + '\n')
games = div.xpath(".//li")
for idx, game in enumerate(games):
game_name = game.xpath("./p/a")[0].text
game_type = game.xpath("./em")[0].text
f.write("\t" + str(idx+1) + "\t" + game_name + "\t" + game_type + '\n')
print("hao123网游排名获取完毕。")
if __name__ == "__main__":
ctx = load_context()
parse_context(ctx)
结语
这是一个简单的爬虫例子,爬取的是一个静态页面。在html页面解析时使用到了xpath语法。
希望对你有所帮助。
XPath教程.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)