本篇是 python 爬虫的第三篇,在前面两篇 Python 爬虫第一篇(urllib+regex) 和 Python 爬虫第二篇(urllib+BeautifulSoup) 中介绍了如何获取给定网址的网页信息,并解析其中的内容。本篇将更进一步,根据给定网址获取并解析给定网址及其相关联网址中的内容。要实现这些功能,我们需要解决以下问题:
1. 如何持续不断的获取 url,并读取相关内容。
2. 如何判断网址是否已经读取过。
文中用到的代码均已上传到 github,在这里就不再贴出完整的代码了。
如何持续不断的获取网址,并读取相关内容?
要想读取网页内容,首先要获取网页的 url,但是我们又不能将所有的 url 都输入到程序中,此时就需要我们从已知的 url 中解析出其他的 url,从而不间断的获取新的 url读取新的内容,获取新的 url 可以通过解析含有 href 属性的 a 标签来实现,具体代码如下:for link in html.find_all(name='a', href=re.compile(r'https?://list|item.szlcsc.+')):
if len(self.__url_set) > self.__max_url_count:
return
url = link.get('href')
以上代码解析出所有的 a 标签中的 href 属性内容以 https://list.szlcsc 和 https://item.szlcsc为开头的 url 连接。在这里还是设置了一个最大的 url 解析量「由于在测试中需要一个停止条件」,默认值为1000。
从一个 url 中获取到更多的 ur