import requests
import re url = 'http://www.ygdy8.net/html/gndy/dyzz/list_23_{}.html'
for n in range(1, 2):
new_url = url.format(n)
html_1 = requests.get(new_url)
html_1.encoding = 'gb2312'
detil_list = re.findall('<a href="(.*?)" class="ulink">', html_1.text) for m in detil_list:
b_url = 'http://www.ygdy8.net' + m
html_2 = requests.get(b_url)
html_2.encoding = 'gb2312'
ftp = re.findall('<a href="(.*?)">.*?</a></td>', html_2.text)
with open('tddy.txt', 'a', encoding='utf-8') as f:
f.write(ftp[0] + '\n')

大学排名练习

 import bs4
import requests
from bs4 import BeautifulSoup def get_html_text(url):
try:
r = requests.get(url, timeout=20)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return " " def fill_univ_list(ulist, html):
soup = BeautifulSoup(html, "html.parser")
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag): # 判断类型
tds = tr('td')
ulist.append([tds[0].string, tds[1].string, tds[3].string]) def print_univ_list(ulist, num):
tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"
print(tplt.format("排名", "学校名称", "总分", chr(12288)))
for i in range(num):
u = ulist[i]
print(tplt.format(u[0], u[1], u[2], chr(12288))) def main():
uinfo = []
url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2016.html'
html = get_html_text(url)
fill_univ_list(uinfo, html)
print_univ_list(uinfo, 20) main()

淘宝商品比价:

 import requests
import re def get_html_text(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = 'utf-8'
return r.text
except:
return "" def parse_page(ilt, html):
try:
plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html)
tlt = re.findall(r'\"raw_title\"\:\".*?\"', html)
for i in range(len(plt)):
price = eval(plt[i].split(':')[1])
title = eval(tlt[i].split(':')[1])
ilt.append([price, title])
except:
print("") def print_goods_list(ilt):
tplt = "{:4}\t{:8}\t{:16}"
print(tplt.format("序号", "价格", "商品名称"))
count = 0
for g in ilt:
count = count + 1
print(tplt.format(count, g[0], g[1])) def main():
goods = '减肥餐'
depth = 2
start_url = 'http://s.taobao.com/search?q=' + goods
info_list = []
for i in range(depth):
try:
url = start_url + '&s=' + str(44*i)
html = get_html_text(url)
parse_page(info_list, html)
except:
continue
print_goods_list(info_list)

股票数据:

 import re
import traceback import requests
import sys
from bs4 import BeautifulSoup def get_html_text(url, code='utf-8'):
headers ={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
try:
r = requests.get(url, timeout=20, headers=headers)
r.raise_for_status()
r.encoding = code
return r.text
except:
return "" def get_stock_list(lst, stock_url):
html = get_html_text(stock_url, 'GB2312')
soup = BeautifulSoup(html, 'html.parser')
a = soup.find_all('a')
for i in a:
stock_code = re.findall(r'[s][hz]\d{6}', str(i))
if len(stock_code) != 0:
lst.append(stock_code) def get_stock_info(lst, stock_url, fpath):
count = 0
for stock in lst:
url = stock_url + stock[0] + '.html'
print(url)
html = get_html_text(url)
try:
if html == "":
continue
info_dict = {}
soup = BeautifulSoup(html, 'html.parser')
stock_info = soup.find('div', attrs={'class': 'stock-bets'})
info_dict.update({'股票名称': stock_info.text.split()[0]}) key_list = stock_info.find_all('dt')
value_list = stock_info.find_all('dd')
for i in range(len(key_list)):
key = key_list[i].text
info_dict[key] = value_list[i].text with open(fpath, 'a', encoding='utf-8') as f:
f.write(str(info_dict) + '\n')
count = count + 1
print("\r当前进度: {:.2f}%".format(count*100/len(lst), end=""))
except:
traceback.print_exc(file=sys.stdout)
count = count + 1
print("\r当前进度: {:.2f}%".format(count * 100 / len(lst), end=""))
continue def main():
stock_list_url = 'http://quote.eastmoney.com/stocklist.html'
stock_info_url = 'http://gupiao.baidu.com/stock/'
output_file = 'D:/BaiduStockInfo.txt'
slist = []
get_stock_list(slist, stock_list_url)
get_stock_info(slist, stock_info_url, output_file)

python3----练习题(爬取电影天堂资源,大学排名,淘宝商品比价)的更多相关文章

  1. Python多线程爬虫爬取电影天堂资源

    最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...

  2. 14.python案例:爬取电影天堂中所有电视剧信息

    1.python案例:爬取电影天堂中所有电视剧信息 #!/usr/bin/env python3 # -*- coding: UTF-8 -*- '''======================== ...

  3. python利用requests和threading模块,实现多线程爬取电影天堂最新电影信息。

    利用爬到的数据,基于Django搭建的一个最新电影信息网站: n1celll.xyz  (用的花生壳动态域名解析,服务器在自己的电脑上,纯属自娱自乐哈.) 今天想利用所学知识来爬取电影天堂所有最新电影 ...

  4. Python爬取电影天堂指定电视剧或者电影

    1.分析搜索请求 一位高人曾经说过,想爬取数据,要先分析网站 今天我们爬取电影天堂,有好看的美剧我在上面都能找到,算是很全了. 这个网站的广告出奇的多,用过都知道,点一下搜索就会弹出个窗口,伴随着滑稽 ...

  5. scrapy框架用CrawlSpider类爬取电影天堂.

    本文使用CrawlSpider方法爬取电影天堂网站内国内电影分类下的所有电影的名称和下载地址 CrawlSpider其实就是Spider的一个子类. CrawlSpider功能更加强大(链接提取器,规 ...

  6. requests+BeautifulSoup | 爬取电影天堂全站电影资源

    import requests import urllib.request as ur from bs4 import BeautifulSoup import csv import threadin ...

  7. requests+lxml+xpath爬取电影天堂

    1.导入相应的包 import requests from lxml import etree 2.原始ur url="https://www.dytt8.net/html/gndy/dyz ...

  8. 爬虫之爬取电影天堂(request)

    #需要通过代码打开https://www.dytt8.net/网站,拿到网站内容 from urllib.request import urlopen #拿到urlopen import re con ...

  9. java批量爬取电影资源

    摘要 网上有很多个人站来分享电影资源,其实有时候我们自己也想做这个一个电影站来分享资源.但是这个时候就有一个问题,电影的资源应该从哪里来呢?难道要自己一条条手动去从网络上获取,这样无疑是缓慢而又效率低 ...

随机推荐

  1. iOS-仿智联字符图片验证码

    概述 随机字符组成的图片验证码, 字符位数可改变, 字符可斜可正排列. 详细 代码下载:http://www.demodashi.com/demo/10850.html 项目中有时候会有这种需求: 获 ...

  2. http协议中各个响应状态200_301_404_500等返回值含义快速一览

    一.定义 从HTTP的定义可以看出,HTTP协议是互联网上进行数据通信的基础协议,用来交换或传输超文本.超文本是一种结构化的文本,在包含文本的节点之间使用逻辑链接(也叫超链接). 二.概述 HTTP是 ...

  3. 你觉得你非常了解Javascript?

    (翻译不当之处请谅解) 来源:http://www.ido321.com/914.html 这里有5个小脚本,有助于你真正理解JavaScript核心–闭包和作用域.没有在控制台执行之前,尝试回答每一 ...

  4. Android 依赖注入: Dagger 2 实例解说(一)

    本文原创,转载请注明出处:http://blog.csdn.net/zjbpku [Duplicated]   link to  Dagger on Android - Dagger2具体解释 关于D ...

  5. [Jobdu] 题目1377:缓变序列

    题目描述: 陈博在写论文时碰到一个难题:如何将给定的整数序列变换成缓变序列:即任意两个相邻的元素相差均为1,第1个元素和最后一个元素相差也为1. 变换是指改变原整数序列中各元素的顺序.例如整数序列1, ...

  6. Atitit. 委托的本质 c#.net java php的比较

    Atitit.class 与type的区别,抽象的级别 class, delegate,interface委托的本质 1. 委托是粒度更细的接口 1 2. 委托模式 1 3. Java中的委托 1 4 ...

  7. 应用SVN比较文件定位修改

    用SVN checkout一个版A本到一个目录中,再从别的地方找到版本B复制到版本A所在的目录中,选择复制和替换,再要比较的文件上右键-->SVN-->diff

  8. 【Android】15.1 后台任务和前台任务

    分类:C#.Android.VS2015: 创建日期:2016-02-29 一.简介 Android的活动(Activities)可以有多种状态,具体取决于用户的行为以及对操作系统的要求.虽然Acti ...

  9. CControlLayer

    #ifndef __CONTROLLAYER_H__ #define __CONTROLLAYER_H__ #include "XWidget.h" class CMapDialo ...

  10. PHPStorm 10 激活

    按照这篇东东的说法去做已经不行了~ 可以参考我的另外一篇~ 传送门: http://www.cnblogs.com/gssl/p/5686612.html 楼主的图片看不到,下面是我找到的.分享出来. ...