转载请标明出处https://www.cnblogs.com/hahagaga/p/9591606.html,谢谢

这里对小说网进行爬虫,由于页面单一,没有进行sleep操作
之前爬某众点评,各种切页面,各种请求,然而忘记sleep,在调试阶段,ip成功进入小黑屋,隔着屏幕,某网站还把我的多层ip直接返给了我,满满的嘲讽。。。
话说我只是练习练习,显然我菜得抠脚,但是我真的没有恶意。。。这里我想对某站表示诚挚的歉意!
各位同学在爬虫时候一定要注意增加ip池,以及主要的sleep,如果爬虫没有sleep,对被爬虫服务器来说是高负荷的,请各位Spider-Man手下留情,文明爬虫。

本次爬虫由于只是简单练习,只爬了排名,类型,作品名,作品url,以及作者,并没有爬取小说内容,话说应该没有涉及到违法内容。。。

下面代码自己改路径,应该拿来就能用

 1 from bs4 import BeautifulSoup
 2 import requests
 3 
 4 class pachong():
 5 
 6     def get_html(self, web_url):
 7         header = {
 8             "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16"}
 9         html = requests.get(url=web_url, headers=header).text
10         Soup = BeautifulSoup(html, "lxml")
11         data = Soup.find("ul", {"class": "main_con"})
12         return data
13 
14     def get_info(self, web_url):
15         f = open("txt路径", "a")
16         for info in self.get_html(web_url):
17 
18             if info.find("span") == -1 or info.find("span") == None: 
19                 pass
20             else:
21                 # 排名
22                 paiming = info.find("span", {"class": "pm"}).find('em').get_text()
23                 # 类型
24                 kind = info.find("span", {"class": "kind"}).find('a').get_text().replace('[', '').replace(']', '')
25                 # 作品名
26                 name = info.find("a", {"class": "fs14"})['title']
27                 # 作品url
28                 bookurl = info.find("a", {"class": "fs14"})['href']
29                 # 月票数量
30                 bit = info.find("span", {"class": "bit"}).get_text()
31                 # 作者
32                 author = info.find("span", {"class": "author"}).find('a').get_text()
33                 f.write(paiming + '. ')
34                 f.write(kind + " ")
35                 f.write(name + " ")
36                 f.write(bit + " ")
37                 f.write(author + "\n")
38                 f.write(bookurl + "\n")
39                 f.write("\n")
40         f.close()  # 关闭文件
41 
42 
43 if __name__ == "__main__":
44     run = pachong()
45     page = 1  # 初始化页数,TOP一共有250部   每页25部
46     while page <= 4:
47         web_url = "http://book.zongheng.com/ranknow/male/r1/c0/q20180801/%s" % page + ".html"
48         run.get_info(web_url)
49         page += 1

查看了很多爬虫的框架,发现原理好像都差不多, 这里使用beautifulsoup是感觉这个相对来说简单一些,而且很适合初学者。

个人感觉爬虫与pc端ui自动化测试相通的,有些url通过request请求后,元素并没有返回,这时候可以结合selenium进行ui交互,获取需要的内容也是可以的

 

版权声明:本文为hahagaga原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hahagaga/p/9591606.html