Skip to content

Commit c138a56

Browse files
committed
添加
1 parent bf85025 commit c138a56

8 files changed

Lines changed: 316 additions & 82 deletions

File tree

.idea/Python.iml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 190 additions & 80 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mysql.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from urllib.request import urlopen
2+
txt = urlopen("1.txt")

oop1.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class Oop (object):
2+
def foo(self):
3+
print("ok")
4+
FO = Oop()
5+
FO.foo()

爬虫1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from bs4 import BeautifulSoup
33
import os
44
# 下载网页
5-
url = 'http://www.yidianzixun.com/home?page=article&id=0G5zThN8&up=0'
5+
url = 'http://www.yidianzixun. com/home?page=article&id=0G5zThN8&up=0'
66
res = urllib.request.urlopen(url)
77
html = res.read().decode('utf-8')
88
# 解析网页

爬虫3.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import urllib.request
2+
from urllib.error import HTTPError,URLError
3+
from bs4 import BeautifulSoup
4+
url = 'http://www.8she.com/31988.html'
5+
res = urllib.request.urlopen(url)
6+
# html1 = BeautifulSoup(res)
7+
# print(html1)
8+
# try:
9+
# print(html1)
10+
# except HTTPError as e:
11+
# print(e)
12+
# else:
13+
# print('error')
14+
html = res.read().decode('utf-8')
15+
soup = BeautifulSoup(html,'html.parser')
16+
print(soup)

爬虫4-糗事百科.py

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import re
4+
import requests
5+
import time
6+
7+
8+
# 定义一个Tool类,方便用replace方法把换行符等删除
9+
class Tool():
10+
def replace(self, x):
11+
x = re.sub(re.compile('<br>|</br>|<br/>'), "", x)
12+
return x.strip()
13+
14+
15+
# 定义一个Spider类
16+
class Spider(object):
17+
# 初始化参数
18+
def __init__(self):
19+
self.siteURL = 'http://www.qiushibaike.com/'
20+
self.tool = Tool()
21+
22+
# 获取网页源码
23+
def getSource(self, url):
24+
user_agent = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
25+
headers = {'User_agent': user_agent}
26+
r = requests.get(url, headers=headers)
27+
result = r.text
28+
return result
29+
30+
# 获取详情页信息,并循环打印输出
31+
def getDetailPage(self, detailURL):
32+
source = self.getSource(detailURL)
33+
pattern = re.compile(
34+
'<div class="author.*?<h2>(.*?)</h2>.*?Icon">(.*?)</div>.*?<div class="content">.*?<span>(.*?)</span>.*?<span.*?stats-vote.*?number">(.*?)</i>.*?stats-comments.*?number">(.*?)</i>.*?up.*?number hidden">(.*?)</span>.*?down.*?number hidden">(.*?)</span>',
35+
re.S)
36+
items = re.findall(pattern, source)
37+
number = 1
38+
for item in items:
39+
print
40+
u''
41+
print
42+
number, u'楼', u'\n楼主:', item[0], u'', item[1], u'岁', u'\n发言:', self.tool.replace(item[2]), u'\n好笑:', item[
43+
3], u'\n评论:', item[4], u'\n赞:', item[5], u'\n踩:', item[6]
44+
time.sleep(0.1)
45+
number += 1
46+
return items
47+
48+
# 保存信息写入文件
49+
def saveDetailPage(self, data, name):
50+
fileName = 'page' + name + '.' + 'txt'
51+
f = open(fileName, 'wb')
52+
f.write(data.encode('utf-8'))
53+
print
54+
u'', u'成功将数据保存入文件', fileName
55+
f.close()
56+
57+
# 对一页的操作
58+
def OnePage(self, detailURL, name):
59+
data = self.getDetailPage(detailURL)
60+
self.saveDetailPage(str(data), str(name))
61+
62+
# 对很多页的操作
63+
# 分两种情况讨论,start页等于1\start页大于1
64+
def getAllPage(self, start, end):
65+
if start == 1:
66+
print
67+
u'正在获取第1页的数据...'
68+
detailURL = self.siteURL
69+
self.OnePage(detailURL, start)
70+
number = 2
71+
for page in range(2, end + 1):
72+
print
73+
u'正在获取第', number, u'页的数据...'
74+
detailURL = self.siteURL + '8hr/page/' + str(page) + '/?s=4964625'
75+
self.OnePage(detailURL, number)
76+
time.sleep(2)
77+
number += 1
78+
if number == end + 1:
79+
print
80+
u'', u'\n加载结束!'
81+
return False
82+
83+
elif start > 1:
84+
number = start
85+
for page in range(start, end + 1):
86+
print
87+
u'', u'\n正在获取第', number, u'页的数据...'
88+
detailURL = self.siteURL + '8hr/page/' + str(page) + '/?s=4964625'
89+
self.OnePage(detailURL, number)
90+
time.sleep(2)
91+
number += 1
92+
if number == end + 1:
93+
print
94+
u'', u'加载结束!'
95+
return False
96+
97+
98+
spider = Spider()
99+
spider.getAllPage(start=int(input('请输入起始页数:')), end=int(input('请输入结束页数')))

0 commit comments

Comments
 (0)