爬取小说全集地址
-
模块库准备:urllib模块与BeautifulSoup
安装过程:
urillib库是python的内置库无需安装
BeautifulSoup库安装:Win+R输入CMD命令进入控制台,再输入pip install BeautifulSoup。请注意pip版本状态。 -
选取合适的爬取网址:
这里我们用136书屋作为我们第一个实战例子:
url:http://www.136book.com/
随便选取一部小说:view-source:http://www.136book.com/guiguzidaquanji/
右键点击查看网页源代码
-
上代码:
from urllib import request
#从urllib包中引入request函数
from bs4 import BeautifulSoup as bs
#从Beautiful包中引入BeautifulSoup为了方便命名为bs
url='http://www.136book.com/hongloumeng/'
#定义url
response=request.urlopen(url)
#首先request访问url王者并得到回复传给response
html_data=response.read().decode('utf-8')
#读取网站代码信息传给html_data
soup=bs(html_data,'lxml')
#bs对代码进行解析,为防止网址返回类型可能不只是html,引入lxml。lxml是python的一个解析库,支持HTML和XML的解析
soup_texts=soup.find('div',id='book_detail',class_='box1').find_next('div')
'''在上述网页源代码中选取你所需要的标签,id,class。注意class为了区分改成class_=...
(注意)这里的.fin_next是因为源码有两个同id class的div无法区分。我们选择下面这个
find只是得到一类,若将.find('...')改成find_all('...')结果可以是多类。
'''
for link in soup_texts.ol.children:
#定义新变量link在div中ol的子节点里循环遍历
if link !='\n':
#跳过空行
print(link.text + ': ',link.a.get('href'))
#打印出子节点的标题及链接。