使用requests库获取网页源码,再用lxml进行解析。时间匆忙,连滚带爬查文档,本来想一次性都遍历下来,结果中间字符转字符串过程出了一点小问题,遂卒,等会儿出去跑个步清醒下回来再搞,毕竟任务是每天一篇区块链输出。
look!这是专题的页面,今天先获取第一篇文章的名字和网址。
本来是用Chrome的Xpath插件比较好用,只是近期我的”科学上网“工具全部挂掉,有一个工具我充了两年期会员,心塞。
先用Firefox的插件对付用着,我们看到下方的箭头,指向我们标的信息的位置。
显然,ul[1]代表第一篇文章,那么一共35篇文章,数据就是ul[i],1 <= i <= 35。一看这情况,总觉着for循环直接解决,奈何出现一点问题,先解决第一篇文章的名称和链接。
# -*- coding: utf-8 -*-
# @Time : 2019/10/2 12:32
# @Author : 币行者
# @Email : xypip@qq.com
# @File : test1.py
import requests
from lxml import etree
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
response = requests.get("https://www.jianshu.com/u/4d19f75c94c3", headers=headers)
text = response.content.decode()
# print(response.request.headers)
#
# print(response.content.decode())
html = etree.HTML(text)
# # 按字符串序列化HTML文档
# result = etree.tostring(html).decode()
#
# print(result)
result = etree.tostring(html)
article_name = html.xpath("//ul[@class='note-list']/li[1]/div/a/text()")
print("article_name = ", article_name)
article_url = html.xpath("//ul[@class='note-list']/li[1]/div/a/@href")
article_url[0] = "https://www.jianshu.com" + article_url[0]
print("article_url = ", article_url)
运行结果:
article_name = ['央行数字货币,意在辅人民币出海']
article_url = ['https://www.jianshu.com/p/ac1c68afb873']
网友评论