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. Spring 基于Aspectj切面表达式

    package com.proc; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; im ...

  2. cxf发布 webservice服务

    导包 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar commons-collections-3.2.1.jar commons-lang-2.6.ja ...

  3. 微软的SQLHelper类(含完整中文注释)

    using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collect ...

  4. Android:EditText限制文字输入

    Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字,最大输入的文字个数,不能输入 一些非法字符等,这些需求有些可以使用android控件 ...

  5. C# 获取文件MD5、SHA1

    /// <summary> /// 计算文件的 MD5 值 /// </summary> /// <param name="fileName"> ...

  6. MySQL数据约束和关联查询

    1 默认值deafult:在建表的时候字段后使用 default ,默认值字段允许为null. 2 非空 not null:在建表的时候字段后使用  not null. 非空字段必须赋值,并且不能是n ...

  7. Json映射为Map,避免定义过多pojo类

    我们在开发过程中经常会遇到解析Json字符串的情况,这时候采用开源工具可以快速将json字符串映射为pojo对象.而在某些业务场景中,往往为了获得json字符串中某个属性的值而不得不定义一个pojo类 ...

  8. CakePHP不支持path/to路径,前后台无法方法

    本来想把前后台分离,可是阅读了cakephp的说明,才发现.cakephp根本就不支持path/to路径. cakephp官网给出的 管理员分离方式:http://book.cakephp.org/2 ...

  9. 集合运算 蓝桥杯 set容器

    题目描述 给出两个整数集合A.B,求出他们的交集.并集以及B在A中的余集. 输入格式 第一行为一个整数n,表示集合A中的元素个数. 第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素. 第三行 ...

  10. 删除CNNIC根证书

    操作方法: 1.点击IE工具菜单-->选项-->内容-->证书,在受信任的根证书颁发机构中找到CNNIC Root,将证书导出到桌面备用. 双击CNNIC ROOT查看这个证书的属性 ...