Python爬取【吾爱破解】在百度中的所有收录网址与标题
本帖最后由 vsyour 于 2016-6-20 17:07 编辑哈哈,前段时间因违反论雲版规,被关小黑屋了,通过改造放出来了,最近学了点Python,就顺手为吾爱写点东西和大家一起玩玩。
同时提创大家多多爱护这个家园,这确实是个好地方,以前的看雪,吾爱,对我的帮助确实不小,先感谢下哈。
【版规】http://www.52pojie.cn/thread-463264-1-1.html
如果有什么需求大家跟贴啊,我尽量陪你们玩。【请不要吝啬您手中的赞哦,帮我加点爱心哈】
代码效果:
源代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
尝试52pojie.cn爬取百度对网站收录的所有链接
其他功能以后再慢慢玩。哈哈
有什么需求可以跟贴提出,记得帮我加点【CB】哦
'''
import requests
from random import randint
from bs4 import BeautifulSoup
import re
import datetime
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
HEADERS = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
"X-Forwarded-For": '%s:%s:%s:%s' % (randint(1, 255),
randint(1, 255), randint(1, 255), randint(1, 255)),
"Content-Type": "application/x-www-form-urlencoded",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Connection": "keep-alive"}
# print HEADERS
start_time = datetime.datetime.now()# 取当前时间
print (u'[-] 现在时间:%s') % start_time
for pn in range(0, 750, 10):
print ('第【%s】页')%pn
url_a = 'https://www.baidu.com/s?wd=site%3A52pojie.cn&pn='
url_b = '&oq=site%3A52pojie.cn&ie=utf-8&usm=1&rsv_idx=1&rsv_pq=dd6157d100015d1f&rsv_t=9a3eHncH3YeAeoblNqMm1f3%2FAQsJeSgF03XLXg6VDz6VqSprqUL8lGGO3us'
joinUrl = url_a + str(pn) + url_b
# print joinUrl #拼接URL
html_Doc = requests.get(joinUrl, headers=HEADERS).content# 从Url 中取回网站源码
html_Soup = BeautifulSoup(html_Doc, 'html.parser', from_encoding='utf-8')
all_H3 = html_Soup.findAll('h3', attrs={'class': 't'})# 取所有H3标签中class为t的所有元系
print (u'[+] 此页共找到%s条数据!') % len(all_H3)
for each in all_H3:
# print each
link = re.findall(r'" href="(.*?)" target="_blank">.*?</a></h3>', str(each), re.S)
title = re.findall(r'" href=".*?" target="_blank">(.*?)</a>', str(each), re.S)
print '[-] 标题:%s 链接:%s'%(str(title), str(link))
代码引入了以下几个模块,需要先安装才能跑起来。
BeautifulSouprequests这两个模块估计你得自己安装一下。pip install BeautifulSoup
pip install requests
抓取其他网站 是不是把源码代码
&oq=site%3A52pojie.cn&ie=utf-8&usm=1&rsv_idx=1&rsv_pq=dd6157d100015d1f&rsv_t=9a3eHncH3YeAeoblNqMm1f3%2FAQsJeSgF03XLXg6VDz6VqSprqUL8lGGO3us
改成
&oq=site%3A网站地址&ie=utf-8&usm=1&rsv_idx=1&rsv_pq=dd6157d100015d1f&rsv_t=9a3eHncH3YeAeoblNqMm1f3%2FAQsJeSgF03XLXg6VDz6VqSprqUL8lGGO3us 拜伦 发表于 2016-6-20 17:27
其实我想问的是 BeautifulSoup and requests这两个模块是去 github 去下载吗我找不到唉 能分享下吗
请参考:
BeautifulSoup :https://www.crummy.com/software/BeautifulSoup/bs4/doc/
requests:http://www.python-requests.org/en/master/ 哈。说的就是你,写得不好不要笑。 拜伦 发表于 2016-6-20 17:07
抓取其他网站 是不是把源码代码
&oq=site%3A52pojie.cn&ie=utf-8&usm=1&rsv_idx=1&rsv_pq=dd6157d100015 ...
是的。试下把URL换掉就可以了。或者你直接把52pojie.cn换成你要爬取的试试看。 vsyour 发表于 2016-6-20 17:11
是的。试下把URL换掉就可以了。或者你直接把52pojie.cn换成你要爬取的试试看。
BeautifulSoup and requests 这两个模块 去网上找然后通过pip 安装吗 拜伦 发表于 2016-6-20 17:14
BeautifulSoup and requests 这两个模块 去网上找然后通过pip 安装吗
pip是安装模块的工具,就同平常系统里面用到的apt-get 或者yum命令一样的。
系统中如果没有pip工具的话就需要安装一下,安装方法可以是apt-get install pip或者yum -y install pip
然后就能用pip安装模块了。 尽然没用多线程…… 有啥用处啊? vsyour 发表于 2016-6-20 17:18
pip是安装模块的工具,就同平常系统里面用到的apt-get 或者yum命令一样的。
系统中如果没有pip工具的话 ...
其实我想问的是 BeautifulSoup and requests这两个模块是去 github 去下载吗我找不到唉 能分享下吗