拉勾抓职位简单小爬虫

花了十来分钟写了个这个小爬虫,目的就是想能够方便一点寻找职位,并且大四了,没有工作和实习很慌啊!

Read more

一键git push脚本(python版)

有时候感觉项目push上去每次都敲那么几个命令挺烦人的,可以用这个脚本来代替手工

Read more

百度搜索引擎取真实地址-python代码

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def parseBaidu(keyword, pagenum):
keywordsBaseURL = 'https://www.baidu.com/s?wd=' + str(quote(keyword)) + '&oq=' + str(quote(keyword)) + '&ie=utf-8' + '&pn='
pnum = 0
while pnum <= int(pagenum):
baseURL = keywordsBaseURL + str(pnum*10)
try:
request = requests.get(baseURL, headers=headers)
soup = BeautifulSoup(request.text, "html.parser")
for a in soup.select('div.c-container > h3 > a'):
url = requests.get(a['href'], headers=headers).url
yield url
except:
yield None
finally:
pnum += 1
Read more

360搜索引擎取真实地址-python代码

还是个比较简单的,不像百度有加密算法

分析

1
http://www.so.com/link?url=http%3A%2F%2Fedu.sd.chinamobile.com%2Findex%2Fnews.do%3Faction%3DnoticeDetail%26id%3D22452&q=inurl%3Anews.do&ts=1488978912&t=89c5361a44fe3f52931d25c6de262bb&src=haosou

网址是上面这个样子,没加密直接取就好了,去掉头http://www.so.com/link?url=和尾&q=一直到末尾的部分,剩下的就可以吃了

Read more

javbus爬虫-老司机你值得拥有


起因


有个朋友叫我帮忙写个爬虫,爬取javbus5上面所有的详情页链接,也就是所有的https://www.javbus5.com/SRS-055这种链接,
我一看,嘿呀,这是司机的活儿啊,我绝对不能辱没我老司机的名声(被败坏了可不好),于是开始着手写了


构思


  • 爬虫调度启动程序crawler.py
  • 页面下载程序downloader.py
  • 页面解析程序pageparser.py
  • 数据库入库与去重管理程序controler.py
Read more

ProgrammingError: You must not use 8-bit bytestrings...

问题出现:

You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.

产生原因:

问题在用Python的sqlite3操作数据库要插入的字符串中含有非ascii字符时产生,做插入的时候就报当前这个错误。

解决方法:

1. 按提示

1
2
connection = sqlite3.connect(...)
connection.text_factory = str

但是如果字符中出现非ascii字符,那么依然不能解决问题,会产生不可预知的乱码,这样可以参考 2

2. 以utf8的编码格式进行解码转为unicode编码做插入

1
2
3
4
cursor.execute('''
INSERT INTO JAVBUS_DATA (姓名, 年龄)
VALUES (?, ?)
''', ('张三'.decode('utf-8'), '22岁'.decode('utf-8')))

但是如果数据太长,这样一个一个敲挺麻烦的,下面是一个使用map函数简化的小例子

Read more

Visual Studio Code配置Python开发环境

1.安装Python插件

在VScode界面按Crtl+Shift+P或者F1

输入ext install

ext install

直接安装Python,也就是点击它,然后等待,安装好后会提示你重启

Read more

Python之Requests的高级用法


高级用法


本篇文档涵盖了Requests的一些更加高级的特性。


会话对象


会话对象让你能够跨请求保持某些参数。它也会在同一个Session实例发出的所有请求之间保持cookies。

会话对象具有主要的Requests API的所有方法。

我们来跨请求保持一些cookies:

1
2
3
4
5
6
7
s = requests.Session()

s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get("http://httpbin.org/cookies")

print(r.text)
# '{"cookies": {"sessioncookie": "123456789"}}'
Read more

Python中的open和codecs.open

最近老被编码困扰,多次折腾之后,感觉python的编解码做得挺好的,只要了解下边的流程,一般都能解决

input文件(gbk, utf-8…) —-decode—–> unicode ——-encode——> output文件(gbk, utf-8…)
很多文本挖掘的package是在unicode上边做事的,比如nltk. 所以开始读入文件后要decode为unicode格式,可以通过下边两步:

1
2
f=open('XXXXX', 'r')
content=f.read().decode('utf-8')

更好的方法是使用codecs.open读入时直接解码:

1
2
f=codecs.open(XXX, encoding='utf-8')
content=f.read()

转自: http://f.dataguru.cn/thread-237116-1-1.html

Python之Requests的安装与基本使用


安装


使用 pip 安装Requests非常简单

1
pip install requests

或者使用 easy_install 安装

1
easy_install requests

获得源码


Requests 一直在Github上被积极的开发着

你可以克隆公共版本库:

1
git clone git://github.com/kennethreitz/requests.git
Read more