爬虫回响521_现在用scrapy爬一个网站始终遇到521错误,是怎么回事呢?

在尝试爬取www.cnvd.org.cn网站时遇到521错误,可能由于网站对某些请求头的限制。文章通过示例代码展示了如何使用随机User-Agent、设置Referer以及创建数据库表来处理爬虫数据,并提供了错误处理方案。
摘要由CSDN通过智能技术生成

朋友我最近也在爬这个网站,给你点意见你可以看看吧。愿意交流下的话加下我的好友吧。

cnvd正常的情况都可以爬的到。

www.cnvd.org.cn这个东西就比较恶心了,很多的头都反521。

# -*- coding:utf-8 -*-

#coding = utf-8

import urllib

import urllib2

import re

import random

import socket

import MySQLdb as mdb

import cookielib

pagenumber=0

url = 'http://ics.cnvd.org.cn/?max=100&offset='+str(pagenumber)

# url='http://www.cnvd.org.cn/flaw/show/CNVD-2016-05694'

cookie_support= urllib2.HTTPCookieProcessor(cookielib.CookieJar())

opener = urllib2.build_opener(cookie_support,urllib2.HTTPHandler)

urllib2.install_opener(opener)

opener2= urllib2.build_opener(cookie_support,urllib2.HTTPHandler)

urllib2.install_opener(opener2)

user_agents = [

'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',

'Opera/9.25 (Windows NT 5.1; U; en)',

'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',

'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',

'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',

'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',

"Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7",

"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 ",

"Mozilla-Firefox-Spider(Wenanry)"

]

agent = random.choice(user_agents)

UserAgent = "Mozilla-Firefox-Spider(Wenanry)"

opener.addheaders = [("User-agent",UserAgent),("Accept","*/*"),('Referer','http://www.miit.gov.cn/')]

con = mdb.connect('127.0.0.1', 'root', 'root', 'test', port=3307,charset="utf8");

with con:

cur=con.cursor()

cur.execute("CREATE TABLE IF NOT EXISTS \

BUGnews(Id INT PRIMARY KEY AUTO_INCREMENT, WebUrl VARCHAR(50))")

try:

res = opener.open(url)

content= res.read()

# request = urllib2.Request(url,headers = header1)

# response = urllib2.urlopen(request)

# content= response.read().decode('utf-8')

print content

pattern= re.compile('

# res2=opener2.open(url2)

# contentnews= res2.read()

# print contentnews

sql="insert into BUGnews(WebUrl) VALUES (%s)"

params=item.encode('utf-8')

cur.execute(sql,params)

# res2 = opener2.open(url2)

# content2= res2.read()

# print content2

except urllib2.URLError, e:

if hasattr(e,"code"):

print e.code

if hasattr(e,"reason"):

print e.reason

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值