当前位置: 代码迷 >> 综合 >> Python爬虫实习笔记 | Week3 数据爬取和正则再学习
  详细解决方案

Python爬虫实习笔记 | Week3 数据爬取和正则再学习

热度:30   发布时间:2023-11-20 00:38:19.0

2018/10/29
1.所思所想:虽然自己的考试在即,但工作上不能有半点马虎,要认真努力,不辜负期望。中午和他们去吃饭,算是吃饭创新吧。下午爬了鸡西的网站,还有一些字段没爬出来,正则用的不熟悉,此时终于露出端倪,心情不是很好。。明天上午把正则好好看看。

2.工作:
[1].哈尔滨:html post请求;
[2].大庆:aspx 先get后post请求;
[3].鸡西: aspx 先get后post请求,postdata信息在input标记里;此外,法定代表人和处罚依据没抠出来;

2018/10/30
1.所思所想:今天上午好好规划了下,以后每天上午都努力多学点新东西,这样工作的效率才会高。教训来源于网页爬取的正则的应用,正因为上午的再学习,才使得下午的工作很高效。中午,帮了二叔一个忙,说明的启示是,一是积累,资源的积累,见识的积累,人脉的积累,对一个人的价值表现很重要;二是助人为乐,帮助他人也会让自己感到快乐。下午就在尽力的爬数据,专注的时光过得好快。。

  • Python正则的学习整理:

python正则之再学习与实践

2.工作:
[1].昨天鸡西市的处罚依据一直有问题,今天发现是中文的文号(?)与英文文号(?)不同的原因,花了很多时间;
[2].在爬取鸡西市的数据时,发现“法定代表人”这个可能会报错,需要对一块代码内容进行修改;


[3].64鹤岗市 图片内容为主
[4].65双鸭山 图片内容为主
[5].67伊春市
按照国家《政府网站发展指引》(国办发[2017]47号)有关要求,为加强我市政府网站集约化建设,进一步推进政务公开和政务服务工作,经部门申请、逐级审批,伊春市环保局网站申请临时下线,网站功能和原有内容整合迁移到市政府门户网站(www.yc.gov.cn)向社会发布。
目前不可访问。。。
[6].68佳木斯市  网站内搜索无相关信息
[7].69七台河市 网站内搜索无相关内容

2018/10/31
1.所思所想:今天上午跟着昨天的计划,把python正则好好梳理了下,没想到下午就在项目中能得到很好的应用,说明技术要不断积累,才是省时省力的最佳途径。中午,和蔡君吃饭,发现自己的口头表达与倾听能力还需要很大提升,需要自己去好好注意,不可大意。晚上看设计模式这一块,感觉自己吃不透,而且会走神,可能自己的经验还不足以消化。不管怎么样,一步一脚印,慢慢前进!

2.工作:
72绥化市  内容以图片为主
73大兴安岭地区 html get请求
用正则的好处是,对于不同表述的文本,不会使脚本变得冗长,而且显得简单,这种简单建立在对正则的大致掌握上。

2018/11/01
1.所思所想:今天上午就还是学习正则,做做书后的题目熟练一下用法,希望以后有空看一下《精通正则表达式》,相信会对自己的工作有很大帮助。中午和他们四一起吃了饭,发现自己有与人争辩的冲动,我觉得这是一定要不得的,与人相处,并不以真理为唯一衡量条件,而是能寻找共同点,增加彼此的信任,多谈谈对方。下午开始搞环评,总体来说思路清晰,明天把代码再优化下。

2.工作:
[1].环评工作了解,并对代码进行修改;
[2].吉林省白城市 环评数据爬取 但批准公告无;
[3].整理和优化爬取思路;

2018/11/02
1.所思所想:撸起袖子加油干!

2.工作:
[1].图片的爬取
今天爬取数据时,想着图片爬取和解析的问题,于是便行事冲冲的做了起来。
起初,我用了urllib.request.urlretrive方法,实现起来不算麻烦,爬取的是百度图片,对图片的url正则要优化下,如下:
import requests
import json
import chardet
from bs4 import BeautifulSoup
import urllib
import re

url = 'https://image.baidu.com/search/index?ct=201326592&z=&tn=baiduimage&ipn=r&word=壁纸 不同风格 小清新&pn=0&istype=2&ie=utf-8&oe=utf-8&cl=2&lm=-1&st=-1&fr=&fmq=1526269427171_R&ic=0&se=&sme=&width=&height=&face=0'
user_agent = 'Mozilla/4.0 (compatible); MSIE 5.5; Windows NT'
headers = {
    'User-Agent': user_agent
}
response = requests.get(url, headers=headers)
response.encoding = chardet.detect(response.content)['encoding']
soup = BeautifulSoup(response.text, 'lxml')
print(soup.prettify())
images = soup.find_all(name='img', class_='main_img')
# print(images)

# 打开方式1
html = response.text
srcs = re.findall(r'".*?URL":"(.*?\.jpg)', html)

i = 1
for src in srcs:
    print(src)
    try:
        src.replace('\\', '')
        urllib.request.urlretrieve(src, './BaiduImages/img' + str(i) + '.jpg')
        print('图片{}下载成功:'.format(i), src)
    except:
        pass
    i += 1

中午吃饭时,和学长聊了下,可以不用那么麻烦,直接用response.content返回图片的字节格式即可,可见requests模块是非常强大的,代码如下:
import requests
import json
import chardet
from bs4 import BeautifulSoup
import re


url = 'https://image.baidu.com/search/index?ct=201326592&z=&tn=baiduimage&ipn=r&word=壁纸 不同风格 小清新&pn=0&istype=2&ie=utf-8&oe=utf-8&cl=2&lm=-1&st=-1&fr=&fmq=1526269427171_R&ic=0&se=&sme=&width=&height=&face=0'
user_agent = 'Mozilla/4.0 (compatible); MSIE 5.5; Windows NT'
headers = {
    'User-Agent': user_agent
}
response = requests.get(url, headers=headers)
response.encoding = chardet.detect(response.content)['encoding']

# 打开方式1
html = response.text
srcs = re.findall(r'".*?URL":"(.*?\.jpg)', html)

i = 1
for src in srcs:
    print(src)
    try:
        filename = './BaiduImages/image' + str(i) + '.jpg'
        with open(filename, 'wb') as fp:
            response_for_img = requests.get(src)
            fp.write(response_for_img.content)
    except:
        pass
    i += 1

[2].环评数据的爬取
吉林省    松原市    get
受理公示内容为doc文件    http://hbj.jlsy.gov.cn/ywgg/hpslgs/
拟审批和审批结果公示可爬取    http://hbj.jlsy.gov.cn/ywgg/hjyxpj/