记录小白学习python爬虫的过程(一)

记录小白学习python爬虫的过程(一)

囫囵吞枣python的基本语法后,我安装了python3.6.4和pycharm2017,开始了python爬虫之旅。

import lxml.html,requests
url = 'https://www.python.org/dev/peps/pep-0020/'
xpath = '//*[@id="the-zen-of-python"]/pre/text()'
res = requests.get(url)
ht = lxml.html.fromstring(res.text)
text = ht.xpath(xpath)
print('Hello,\n'+''.join(text))

这是一个被称为HelloSpider的爬虫程序,是小白要学的第一个爬虫程序,可以称为python爬虫领域的HelloWorld。

一开始我就遇到了问题。Pycharm出现No Python interpreter selected,查阅资料后我发现,是因为还没在Project Interpreter中配置lxml等库。

调整之后,成功输出了“python之禅”的内容。真的666!

在这里插入图片描述

接下来逐句分析HelloSpider程序

import lxml.html,requests

上述代码使用import导入lxml.html和requests这两个模块

url = 'https://www.python.org/dev/peps/pep-0020/'

上述代码定义了url这个变量,是一个将要被爬的网页的链接

xpath = '//*[@id="the-zen-of-python"]/pre/text()'

这个地方我卡了好久,后来大概可能明白了。xpath变量是用来定位元素的,来自lxml库。id="the-zen-of-python 这句话就是要定位的对象,它可以根据html中的文本信息替换成name=…、class=…等等。

即"//标签名[ @属性= “属性值”]"

后面的/pre是文本的索引,必不可少,删了就无法正常运行,应该是为了明确爬取文本的范围。

至于/text(),可能就是为了获取文本吧?

res = requests.get(url)

上述代码使用Requests中的get()方法,对url发送一个HTTP GET请求,返回值被赋值给res。

ht = lxml.html.fromstring(res.text)

fromstring()在解析lxml格式时,将text文本内容转换为HtmlElement对象。说实话,此处我还不太懂。

text = ht.xpath(xpath)
print('Hello,\n'+''.join(text))

输出文本

其中还有很多细节,不加赘述。

后面又学习了检查网站是否可爬、查看网站所用技术和网站所有者信息等。

猜你喜欢

转载自blog.csdn.net/weixin_48916816/article/details/108570326