因此,我创建了一个 Django 网站来从网络上抓取新闻网页以获取文章。即使我使用 mechanize,他们仍然告诉我:
HTTP Error 403: request disallowed by robots.txt
Run Code Online (Sandbox Code Playgroud)
我尝试了一切,看看我的代码(只是要抓取的部分):
br = mechanize.Browser()
page = br.open(web)
br.set_handle_robots(False)
br.set_handle_equiv(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
#BeautifulSoup
htmlcontent = page.read()
soup = BeautifulSoup(htmlcontent)
Run Code Online (Sandbox Code Playgroud)
我也尝试在 set_hande_robots(Flase) 等之前使用 de br.open 。它也不起作用。
有什么办法可以通过这个网站吗?
我运行 CentOS 6.5 并且刚刚从 apache 移动到 nginx。我在服务器上运行 wordpress 网站,几乎没有插件使用刮板从其他网站获取信息,确切地说是 2 个刮板,所以我必须每 1 小时执行 2 个 cron 作业。问题是当我搬到 nginx 时,我一次只能运行一个刮刀。当我尝试运行第二个时,它会停止,并且在从上游读取响应标头时,在上游超时(110:连接超时)中出现错误
我认为它与允许的 php 进程有关,但找不到正确的设置。如果您能建议我需要添加/更改的内容以使其工作,那就太酷了。
fastcgi_connection_timeout - 对我不起作用,因为我需要同时运行它们。
我想在 R 中抓取以下页面的内容:http : //directoriosancionados.funcionpublica.gob.mx/SanFicTec/jsp/Ficha_Tecnica/SancionadosN.htm
但是,我找不到任何可以帮助我获取信息的 HTML 标记或任何其他工具。
我有兴趣使用“INHABILITADOS Y MULTADOS”部分的信息构建一个数据框,如下图所示:
选择此选项后,会出现一个包含多个提供程序的菜单,每个提供程序都有一个特定的表格,其中包含我想要回忆的信息。
我正在编写一个网络画廊抓取工具,我希望尽可能使用 TPL 数据流并行处理文件。
为了抓取,我首先获取图库主页并解析 HTML 以获取图像页面链接作为列表。然后我转到列表中的每个页面并解析 HTML 以获取图像的链接,然后将其保存到磁盘。
这是我的计划的概要:
var galleryBlock = new TransformBlock<Uri, IEnumerable<Uri>>(async uri =>
{
// 1. Get the page
// 2. Parse the page to get the urls of each image page
return imagePageLinks;
});
var imageBlock = new TransformBlock<Uri, Uri>(async uri =>
{
// 1. Go to the url and fetch the image page html
// 2. Parse the html to retrieve the image url
return imageUri;
});
var downloadBlock = ActionBlock<Uri>(async uri …Run Code Online (Sandbox Code Playgroud) 我试图查看是否可以从 WU.com 读取数据表,但由于未找到表而收到类型错误。(这里也是网络抓取的第一次)还有另一个人在这里提出了与 WU 数据表非常相似的 stackoverflow 问题,但解决方案对我来说有点复杂。
import pandas as pd
df_list = pd.read_html('https://www.wunderground.com/history/daily/us/wi/milwaukee/KMKE/date/2013-6-26')
print(df_list)
Run Code Online (Sandbox Code Playgroud)
在密尔沃基的历史数据网页上daily observations,这是我尝试检索到 Pandas 中的
数据表 ( ):
任何提示都有帮助,谢谢。
我有一个抓取python 脚本和一个批处理文件,当从 CMD 运行时可以完美运行,但是当我尝试从任务计划程序运行它时没有任何反应。
我知道有很多关于同一问题的问题,但我已经尝试了所有建议的答案,但似乎没有一个可行。
不知道这是否相关,但脚本会打开 Firefox 并抓取一些网站。
已尝试为我正在使用的文件夹和文件添加完全权限。此外,尝试在任务计划程序中设置“无论用户是否登录都运行”、“以最高权限运行”、“启动(可选):添加/批处理/文件/路径”等
批处理文件:
py "C:\python_test\myscript.py"
Run Code Online (Sandbox Code Playgroud)
它应该运行 python 脚本,它打开 Firefox 并抓取一些网站,获取它们的链接并将它们保存在一个 csv 文件中
这是 myscript.py:
import datetime
import time
import csv
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import os
file_path = r"C:\General\{0:%Y%m%d}\results{0:%Y%m%d%H%M%S}.csv".format(datetime.datetime.now())
directory = os.path.dirname(file_path)
try:
os.stat(directory)
except:
os.mkdir(directory)
from bs4 import BeautifulSoup
def init_driver():
caps = DesiredCapabilities.FIREFOX
caps['marionette'] = True
driver …Run Code Online (Sandbox Code Playgroud) 我正在研究一些简单的爬虫来抓取Twitter 上的转发计数。而我坚持这一点:
<span class="ProfileTweet-actionCountForAria" id="profile-tweet-action-retweet-count-aria-123456789123456789">??? 0?</span>
Run Code Online (Sandbox Code Playgroud)
这就是我要收集的目标标签。您可以看到标签的 id 对每个用户都有一些不同的 id 号。所以我试图用 find_elements_by_xpath 像这样收集那些:
retweets = driver.find_elements_by_xpath("//span[@id='profile-tweet-action-retweet-count-area-*'].text")
Run Code Online (Sandbox Code Playgroud)
我认为 * 在 selenium 的某些地方工作,但在该代码中不起作用。
所以,简而言之,我如何找到包含 'profile-tweet-action-retweet-count-area' 的元素?
感谢您的关注。我找不到这样的问题(也许我没有用正确的问题搜索它,嗯),但是我也找到了很好的参考资料或其他链接!
因此,我尝试打开一个网站,然后导航到某个页面,其中包含我必须从中抓取数据的页面。我能够提供输入,但在到达最终提交按钮之前,我收到错误“selenium.common.exceptions.ElementNotInteractableException:消息:元素无法滚动到视图中”。有任何想法吗 ?
我试图引入等待方法,但它仍然没有给出有用的结果,反而减慢了网站的速度。下面是代码。
from selenium import webdriver
driver=webdriver.Firefox()
ok=driver.find_element_by_css_selector('#dropdownlistContentdrpState > input').send_keys('Chandigarh')
#time.sleep(5)
ok2=driver.find_element_by_css_selector('#dropdownlistContentdrpSchoolManagement > input').send_keys('Pvt. Unaided')
#driver.refresh()
time.sleep(10)
ok3=driver.find_element_by_css_selector('#btnSearch')
ok3.click()
time.sleep(4)
Run Code Online (Sandbox Code Playgroud) 我需要收集很多(真的很多)数据进行统计,所有必要的信息都在里面<script type="application/ld+json"></script>
,我在它下面写了scrapy解析器(html中的脚本),但是解析很慢(大约每秒3页)。有什么办法可以加快这个过程吗?理想情况下,我希望每秒看到 10 多页
#spider.py:
import scrapy
import json
class Spider(scrapy.Spider):
name = 'scrape'
start_urls = [
about 10000 urls
]
def parse(self, response):
data = json.loads(response.css('script[type="application/ld+json"]::text').extract_first())
name = data['name']
image = data['image']
path = response.css('span[itemprop="name"]::text').extract()
yield {
'name': name,
'image': image,
'path': path
}
return
Run Code Online (Sandbox Code Playgroud)
#settings.py:
USER_AGENT = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0"
ROBOTSTXT_OBEY = False
CONCURRENT_REQUESTS = 32
DOWNLOAD_DELAY = 0.33
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
EXTENSIONS = {
'scrapy.extensions.telnet.TelnetConsole': …Run Code Online (Sandbox Code Playgroud) 我在使用 rvest 进行网页抓取时遇到了一个奇怪的问题。
我刮了以下名称:"Abdichter/in EFZ"起初看起来很正常。但是,当我将文件写入 csv 时,我发现字母之间有“-”。在 Excel 中,这个词看起来像这样:Ab-dich-ter/in EFZ。
所以我做了一个str_split(x, ""),发现字符串实际上是这样的:
c("A", "b", "", "d", "i", "c", "h", "", "t", "e", "r", "/", "i", "n", " ", "E", "F", "Z")
Run Code Online (Sandbox Code Playgroud)
我试图从字符串中取出空字符串,但我没有做到。我试过:
my_string <- str_split(my_string , "")
Run Code Online (Sandbox Code Playgroud)
进而
paste0(my_string[my_string != ""])
Run Code Online (Sandbox Code Playgroud)
但这没有帮助。
因此,我想知道:
编辑:这是网页。
这是我获得字符串的方式:
library(rvest)
read_html("https://berufskunde.com/ausbildungsberufe/ausbildung-abdichter.html", encoding = "UTF-8") %>%
html_nodes(".section") %>%
html_nodes(".text-rot") %>%
html_text()
Run Code Online (Sandbox Code Playgroud) python ×5
r ×2
selenium ×2
web-scraping ×2
asynchronous ×1
batch-file ×1
c# ×1
django ×1
firefox ×1
httr ×1
jsp ×1
mechanize ×1
nginx ×1
pandas ×1
php ×1
python-3.x ×1
robots.txt ×1
rvest ×1
scrapy ×1
tpl-dataflow ×1
wordpress ×1