利用python抓取搜狗关于数据分析的文章并保存到csv文件
来源:互联网 发布:悔女知之乎的意思 编辑:程序博客网 时间:2024/05/29 16:49
#coding = 'utf-8' #这里很重要,如果不输入会发现储存的数据乱码,我是python3.6.1 import requestsfrom urllib.parse import urlencodefrom requests.exceptions import ConnectionErrorfrom pyquery import PyQuery as pqimport csvbase_url = 'http://weixin.sogou.com/weixin?'headers={ 'Cookie': '这里要登陆然后复制你的cookie,在审查元素的network里', 'Host': 'weixin.sogou.com', 'Referer': 'http://weixin.sogou.com/weixin?type=2&query=%E9%A3%8E%E6%99%AF&ie=utf8&s_from=input&_sug_=n&_sug_type_=1&w=01015002&oq=&ri=1&sourceid=sugg&sut=0&sst0=1499651269966&lkt=0%2C0%2C0&p=40040108', 'Upgrade-Insecure-Requests':'1', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'}keyword = '数据分析'def get_html(url): try: response = requests.get(url,allow_redirects=False,headers=headers) #当出现302时默认会进行跳转,allow_redirects=False是阻止其进行跳转的 if response.status_code == 200: return response.text if response.status_code == 302: print('302') except ConnectionError: return get_html(url)def get_index(keyword,page): data={ 'query' : keyword, 'page': page, 'type': 2 } queries = urlencode(data) url = base_url + queries html = get_html(url) return htmldef parse_index(html): doc = pq(html) items = doc('.news-box li .txt-box h3 a').items() for item in items: yield item.attr('href')def get_detail(url): try: response = requests.get(url) if response.status_code == 200: return response.text return None except ConnectionError: return Nonedef parse_detail(html): doc = pq(html) title = doc('.rich_media_title').text() content = doc('.rich_media_content ').text() date = doc('#post-date').text() wechat = doc('#post-user').text() return [title,content,date,wechat]def main(): with open('E:/weixin.csv', 'w', encoding='utf8', newline='') as f: #在这里利用python自带的csv模块把数据保存到当地的文件夹下,可以指定文件目录,我这里是E盘 csv_writer = csv.writer(f, dialect='excel') for page in range(1,11): html = get_index(keyword,page) article_urls = parse_index(html) if html: for article_url in article_urls: article_html = get_detail(article_url) if article_html: article_data = parse_detail(article_html) csv_writer.writerow(article_data) print(article_data)if __name__ == '__main__': main()
基本方法就是先获取搜狗微信文章索引目录的url,然后根据这个url进行深度爬取, 把微信文章、作者、时间、之类全部爬下来
储存的数据如下图所示
阅读全文
0 0
- 利用python抓取搜狗关于数据分析的文章并保存到csv文件
- python抓取省市区的数据并保存到mysql中
- Python爬虫:异步数据抓取并保存到Excel
- python通过串口读取GPS NMEA格式的数据,并保存为csv文件
- Python抓取CSV文件中数据
- Python抓取CSV文件中数据【V2】
- 抓取远程文件并保存到本地
- python 下载csv文件保存到 redis
- a标签保存数据到csv文件
- python实战三:通过任务计划定期获取jira数据并保存到csv
- 如何利用live555开源库从摄像机抓取视频数据并保存文件?
- 如何利用live555开源库从摄像机抓取视频数据并保存文件?
- 几行Python代码生成饭店营业额模拟数据并保存为CSV文件
- 【新手】用python抓取html代码并保存到txt文件
- 【python数据分析】CSV文件数据读写
- Python将一个CSV文件里的数据追加到另一个CSV文件
- python实现提取数据并保存在csv中
- python提取百万数据到csv文件
- 源码提供!Android即时通讯和sns开源项目汇总
- 分针网——每日分享:Mongodb 的基本操作
- jsonp
- 桃花庵 唐寅
- 矫正图像亮度、对比度
- 利用python抓取搜狗关于数据分析的文章并保存到csv文件
- cookie和session
- POJ-2411 Mondriaan's Dream(轮廓线dp)
- redhat6.5
- java List转换为字符串的几种方法
- 多维子材质命名测试
- CSS特殊样式(三)纯CSS实现各类气球泡泡对话框效果
- MY_Swift_mutating关键字的使用
- Android多进程全总结