由于项目需要,最近在学习基于python语言的网络爬虫,将自己简单的学习做一个记录,故撰写了这篇博客。直接写代码吧,理论我也讲不明白。
import requests #导入请求库
import re #正则表达式的函数库
import json #json库
from requests.exceptions import RequestException #requests的异常处理
def get_one_page(url): #采用get请求获取页面信息
try:
respond = requests.get(url)
if respond.status_code == 200:
return respond.text
return None
except RequestException:
return None
def parse_one_page(html): #解析获取得页面信息
pattern = re.compile('<tr.*?<a.*?href="(.*?)".*?_blank">(.*?)</a>',re.S)
results = re.findall(pattern,html)
for result in results:
yield {
'href': result[0],
'name': result[1]
}
return results
def write_to_file(content): #获取内容写入文本文件
with open('results.txt','a',encoding='utf-8')as f:
f.write(json.dumps(content,ensure_ascii = False)+'\n')
f.close()
def main(): #主函数
url = 'https://s.weibo.com/top/summary?cate=topicband&sudaref=www.baidu.com&display=0&retcode=6102'
html = get_one_page(url)
results = parse_one_page(html)
for result in results:
write_to_file(result)
print(result)
# print(html)
# print(results)
if __name__=='__main__':
main()
本文分享了使用Python进行网络爬虫的基本实践,包括如何利用requests库发送HTTP请求,使用正则表达式解析网页数据,以及将抓取到的数据保存到本地文件。通过一个具体的实例,演示了从微博热门话题榜抓取链接和名称的过程。
1901

被折叠的 条评论
为什么被折叠?



