爬虫


selenium + python自动化测试环境搭建

Python常用的爬虫技巧总结:http://www.jb51.net/article/81599.htm

 python爬虫----(scrapy框架提高(1),自定义Request爬取):https://my.oschina.net/lpe234/blog/342741

import urllib
import urllib2
import re
import os
if __name__=='__main__':
#爬虫 抓取糗事百科段子 文字 
#抓取过程
#1、访问其中一页地址,获取源代码
for i in range(1,35):
    url='http://www.qiushibaike.com/textnew/page/'+str(i)+'/?s=4940209'
    headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7 (KHTML, like Gecko) Version/9.1.2 Safari/601.7.7'}
    request=urllib2.Request(url=url,headers=headers)
    response=urllib2.urlopen(request)
    content= response.read()
    #print content
    #2、提取内容,用户名字,日期信息
    #class='contentHerf' > 后面的.*?表示匹配换行符
    #regx=re.compile("<a href="/article/(.*?)" target="_blank" class='contentHerf' >.*?<div class="content">.*?<span>(.*?)</span>s</div>",re.S) 
    regx=re.compile("<a href="/article/((d)*)" target="_blank" class='contentHerf' >.*?<div class="content">.*?<span>(.*?)</span>.*?</div>",re.S)
    items=re.findall(regx,content)
    #items中有3个部分,第一部分是id号,第二部分是重复的无用数字,第三部分是内容
    print "begain"+str(i)
    for item in items:
        item_new=item[2].replace('
','').replace('<br/>','
')
        #print item[2]
        #保存
        path='qiubai'
        if not os.path.exists(path):
            os.makedirs(path)  #有子目录 也一起创建
        file_path=path+'/'+item[0]+'.txt'
        f=open(file_path,'w')
        f.write(item_new)
        f.close()
    print 'end'+str(i)

=========其他 学习

'''
url="https://www.oschina.net/home/login?goto_page=https%3A%2F%2Fwww.oschina.net%2F"
headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/601.7.7 (KHTML, like Gecko) Version/9.1.2 Safari/601.7.7'}
#value={'userMail':'333@qq.com','userPassword':'34343'}
value={'email':'333@qq.com','pwd':'34343'}
data=urllib.urlencode(value)
request=urllib2.Request(url=url,data=data,headers=headers)
response=urllib2.urlopen(request)
print response.read()
'''


#1 判断是否小写
str1='sdf3dfw'
regex=re.compile('^[a-z]+$') #从头匹配到尾
a=regex.search(str1)
if a:
print 'yes'
else:
print 'wrong'

#2 提取字符
str2='334kdsf4566rty'
reg1=re.compile('([0-9]+)([a-z]+)([0-9]+)([a-z]+)') #通过小括号进行了分组,用group提取出来,分成了4组,可用下标返回每部分
a1=re.search(reg1,str2)
print a1.group(2)

#3 提取邮箱和手机号,findall,返回列表

str3='eee13478990003认同rrwerew@qq.com土豆粉13400034456dff-_=sdees--'
reg_pn=re.compile('((?:(?:13[0-9])|(?:15[^4,D])|(?:18[0,2,5-9]))d{8})') #?:表示不分组
reg_mail=re.compile('[w,-]+(.([w,-])+)*@[w,-]+(.[w,-]+)+')
a2=reg_pn.findall(str3)
a3=re.search(reg_mail,str3)
print a2
print a3.group()

原文地址:https://www.cnblogs.com/zhangbojiangfeng/p/6195427.html