玩玩python之两个猥琐的爬虫
来源:互联网 发布:网络语音肝是啥意思 编辑:程序博客网 时间:2024/06/06 02:41
import urllib.request,os,random,re,time#pygain--翻版必究def url_open(url):req=urllib.request.Request(url)req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0')# proxies=['27.210.129.153:81']# proxy=random.choice(proxies)# proxy_support=urllib.request.ProxyHandler({'http':proxy})# opener=urllib.request.build_opener()# urllib.request.install_opener(opener)response=urllib.request.urlopen(req)html=response.read()return htmldef get_page(url):html=url_open(url).decode('gb18030')# html=url_open(url)url_page=re.findall(r'url=http://m\.mm131\.com/xinggan/.*?html',html)aa=re.findall(r'[_]\d{0,2}',url_page[0])print(aa)bb=aa[0].split('_')[-1]print(bb)return bbdef find_imgs(url,folder):html=url_open(url).decode('gb18030')# html=url_open(url)img_addrs=re.findall(r'http://img1\.mm131\.com/pic/'+folder+'/.*?jpg',html)print(img_addrs[0])return img_addrsdef save_imgs(folder,img_addrs):each=img_addrs[0]# print(each)filename=each.split('/')[-1]with open(filename,'wb') as f:img=url_open(each)f.write(img)def download_mm(folder,pages):url='http://www.mm131.com/xinggan/'+folder+'_2.html'url_open(url)os.mkdir(folder)os.chdir(folder)page_num = int(get_page(url))for i in range(pages):page_num += 1page_url = 'http://www.mm131.com/xinggan/' + folder + '_'+str(page_num)+'.html'img_addrs=find_imgs(page_url,folder)print(img_addrs)save_imgs(folder,img_addrs)if __name__ == '__main__':a=input('你要爬取的页码(建议在1600到2700之间,具体请参考当前网站):')b=input('你要爬取的照片个数(建议小于40):')c=int(b)download_mm(a,c)爬羞羞图片就是它啦 注意模块要pip安装
这两天看了看python基础,跟着‘’小甲鱼‘’写了两只小爬虫,一个是抓取补天厂商列表,另一个是下载羞羞的图片
下面贴出来源码
# -*- coding:utf-8 -*-import urllib# import urllib2import re#page = 1#L=[1,2,3,4]#a = 11f=open('test1-1.txt','w')for page in range(1,117): url = 'https://butian.360.cn/company/lists/page/'+ str(page) user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers = { 'User-Agent' : user_agent } request_1 = urllib.request.Request(url,headers = headers) response = urllib.request.urlopen(request_1) content = response.read().decode('utf-8') pattern = re.compile('<tr>.*?<td align="left" height="30" style="padding-left:20px;">.*?<a href=".*?">(.*?)</a>.*?</td>.*?<td align="left" style="padding-left:20px;">(.*?)</td>.*?<td align="center">.*?</td>.*?</tr>',re.S) items = re.findall(pattern,content) print(items) # for t in items: # print t[1]+' '+t[0] # #print '\n' # f.write(t[1].encode('gbk')+' '+t[0].encode('gbk')+'\n') # print '=============','第',page,'个','=================' f.close使用前记得加代理别被补天封了IP
0 0
- 玩玩python之两个猥琐的爬虫
- Python玩具总动员之爬虫篇(一):玩玩urllib,做个下载器吧
- [代码笔记] python之 玩玩 while 我的九九归一
- 另外两个metasploit的猥琐插件(转载影子大叔)
- 资治通鉴,前燕后燕,慕容氏两个猥琐的人
- 玩玩python之爬取补天厂商列表
- 猥琐之路(录)
- Python爬虫之分布式爬虫
- 爬虫 Python爬虫利器二之Beautiful Soup的用法
- 芙蓉姐姐的猥琐PS
- 猥琐的夏天
- 一道猥琐的题目
- Python爬虫利器之PyQuery的用法
- Python爬虫利器之Selenium的用法
- Python爬虫利器之PhantomJS的用法
- 简单的python汽车之家爬虫
- python爬虫之BeautifulSoup的用法
- python爬虫之壁纸的下载
- 合并两个升序链表(递归)
- 双向循环链表
- django 1.8 出现 TemplateDoesNotExist 错误
- this指针
- 初学mysql(四)-数据库之数据库表内容的插入删除修改操作
- 玩玩python之两个猥琐的爬虫
- 服务器公网打开问题
- 写个小爬虫爬下迅雷会员
- 文章标题
- 上转型 下转型
- OverTheWire的Bandit题
- address list
- HDU 5969 最大的位或
- 装tensorflow未果