python爬虫教程与实战
- python3.X(3.6)
- BeautifulSoup (bs4)
- requests
上述依赖的安装教程和文档不再赘述,看↑的链接~
网络爬虫(百度百科)(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 简单来讲,爬虫也就是按照需求抓取某一个网站上的内容和子链接上的内容。
在了解爬虫之前,我们需要知道审查元素的概念。 所谓的审查元素,是Google Chrome浏览器提供的一项服务功能,用户只需右键点击“审查元素”(名字),即可打开Chrome Inspector,获得网页各种元素的加载时间、Javascript函数、Object等信息。
一个网页,实质就是一个html文件,在我们输入一个网址,网址被送到DNS服务器解析成IP地址,然后我们的客户端根据这个IP地址,连接到网址对应的实体服务器/云服务器,一个html文件就从服务器端传输到我们的客户端,经过浏览器的渲染,成为了我们能看见的网页。 子节点,父节点,孙节点和兄弟节点: 通过审查一个网站中的内容,发现里面的标签都是成对出现的,而这些成对出现的标签构成了成对的兄弟节点关系。
从笔趣看中用爬虫下载小说。
第一步,从各个章节的目录中爬取出对应各个子章节的链接:
import requests
from bs4 import BeautifulSoup as bs
def get_urls(target):
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
content = requests.get(target,headers = headers)
html = bs(content.text)
div = html.find_all("div",class_="listmain")
#print(type(all_title)) #a result set
titles = bs(str(div[0]))
a = titles.find_all('a')
chapter_names = []
chapter_urls = []
for title in a:
#print(title.string,title.get("herf"))
chapter_name = title.string
chapter_url = target + title.get('href')
chapter_names.append(chapter_name)
chapter_urls.append(chapter_url)
print(chapter_name, chapter_url)
def get_content(chapter_name, chapter_url):
pass
if __name__ == "__main__":
target = "http://www.biqukan.com/0_910/"
get_urls(target)
第二步,分析每个章节的HTML内容,并提取对应的正文:
import requests
from bs4 import BeautifulSoup as bs
(To be continue)