笔趣阁小说爬取
http://blog.csdn.net/qq_22073849/article/details/78018980 小说爬取参考
完成到一半
1.0
这个是很简陋的版本,我后面要加上一个进度。不然白瞎了,都不知到下多久,还有速度太慢了。能不能快点。这也是优化一个方面。
这个写的真丑, 排版很丑. 可是嘛,语法还算简洁的事情.
其中有两个细节 ,
定义一个新的空列表 []
循环取到后,使用append的方法添加进去.
定义了两个方法. 算是比较简单了.
以前都比现在强
#!/usr/bin/python # -*- coding: UTF-8 -*- import requests from bs4 import BeautifulSoup # get_url_list 获取所有章节的URL,在一个list里 def get_url_list(url): content = requests.get(url).content #获取页面内容 soup = BeautifulSoup(content,'lxml') #Beautifulsoup 实例化对象 url_list = [] #空的url_list 数组 # urls = soup.find('div',{'id':'list'}).find('dl').find_all('dd') urls = soup.select('#list > dl > dd > a') # 根据页面选择到URL ,还可以urls = soup.find('div',{'id':'list'}).find('dl').find_all('dd') for i in urls: #遍历里面的每一章的URL i = i.get('href') #获取URL # print(i) i = 'http://www.biquge.com.tw' + i #分析文章组成,形成最终的URL url_list.append(i) #添加到url_list 里面去 # print (url_list) return url_list # 获取这一章的内容 def get_data(url): content = requests.get(url).content soup = BeautifulSoup(content, 'lxml') f = open(r'C:\Users\HBX\Documents\staudy\HMXX.txt','a+',encoding='utf-8') #不加utf-8 会有编码报错 text_name = soup.find('div',{'class':'bookname'}).find('h1').text #获得章节名字 # text_content = soup.select('#content') text_content = soup.find('div',{'id':'content'}).get_text() #获得章节内容 ,还有一种select css 选择的获取章节内容的方式 book =text_name+ '\r\n' + text_content #整体的一章 # print(book) f.write((book)+'\r\n') #换行写入 f.close() #关闭文件 # for x in text_content: # a = x.text.replace('readx();', '') # print(a) if __name__ =='__main__': url = 'http://www.biquge.com.tw/18_18049/' #笔趣阁的小说目录页面 url_list = get_url_list(url) #获取了所有的url for i in url_list: # 循环一章url get_data(i) #获取文章内容
lxml 语法都忘得一干二净了,怪不得老是错误。好的,那现在开始把它弄起来。完成这个,可以还算是不错了。勉强懂了点皮毛。xpath 确实比beautifulsoup 好用。舒服。
url_s = html.xpath('//*[@id="list"]/dl/dd/a/@href')
同一子节点后面的class 要加方括号
//div[@class="bookname"]/h1 等同于 //*[@class="bookname"]/h1 。在 http://www.biquge.com.tw/18_18049/8057786.html 。这个链接里。年轻人
//*[@id="wrapper"]/div[4]/div/div[2]
以后再优化这个版本,现在优衣库不是有打折更新嘛。这个有用,但是每件衣服要确定有没有自己的尺码,还要一个个点。这就不开心了。
想着能不能写一个小程序,打折定期把它爬下来,然后打折的时候有库存我的尺码。抽空发邮件给我邮箱,这样我就可以自己去看了。有我的尺码,方便很多了。
最好设置衣服,裤子。这样不用老爬一些衣服给我。--- 这个以后进入排期. 爬下来..挺有用的.
其次就是推送过三次的衣服就不要推送了。(三四次都不买),肯定后面也没兴趣。有没有道理。
当然有需求还可以自动下单。它一更新你就下订单。后面再决定要不要这也可以啊。没关系。
不要的,再写一个一键退订。或者不退也行。应该关系不大,都没付钱。
业余抽空写。先把自己的工作做好。下班了回去写写,那这个就很舒服了。
对了记着要按方法对象来写。不然太麻烦了。全是过程的太难维护了。不舒服。